matlab - 对双精度矩阵中每一行的特定列求和
问题描述
我想使用 for 循环对矩阵中每一行的特定列求和。下面我包含了我的问题的简化版本。截至目前,我正在单独计算列总和,但这并不有效,因为我的实际问题有多个矩阵(数据集)。
a = [1 2 3 4 5 6; 4 5 6 7 8 9];
b = [2 2 3 4 4 6; 3 3 3 4 5 5];
% Repeat the 3 lines of code below for row 2 of matrix a
% Repeat the entire process for matrix b
c = sum(a(1,1:3)); % Sum columns 1:3 of row 1
d = sum(a(1,4:6)); % Sum columns 4:6 of row 1
e = sum(a(1,:)); % Sum all columns of row 1
我想知道如何创建一个 for 循环,该循环自动循环并为我拥有的每个矩阵的每一行的特定列求和。
谢谢你。
解决方案
这是您不需要使用for
循环的解决方案。
假设您有一个a
size矩阵2x12
,并且您想要对每一4
列进行行求和,那么您可以使用reshape()
andsqueeze()
来获得最终结果:
k = 4;
a = [1:12
13:24];
% a =
% 1 2 3 4 5 6 7 8 9 10 11 12
% 13 14 15 16 17 18 19 20 21 22 23 24
s = squeeze(sum(reshape(a,size(a,1),k,[]),2));
你会得到
s =
10 26 42
58 74 90
推荐阅读
- django - KeyError at - request - django templatetag
- django - 如何将 Oracle 中旧数据库的表视图映射到 django 模型?
- python-3.x - 列表索引必须是整数或切片,而不是元组:TypeError - Python
- python - 更改 DataFrame 的形状以进行分组
- android - 如何使 iOS 和 android 中的字体大小相等?
- apache-kafka - Logstash 在其输出中显示奇怪的字符
- azure - 未配置 azure kubernetes 仪表板
- mysql - 如何确定是否将在不使用触发器或表定义的更新查询中更新行
- location - 使用不同的位置请求模式检索位置时出现问题
- google-cloud-platform - 服务帐号需要哪些预定义的 IAM 角色才能完成 Google Cloud Run 快速入门:构建和部署?