【发布时间】:2019-12-12 02:12:09
【问题描述】:
我想使用 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 循环,该循环自动循环并为我拥有的每个矩阵的每一行的特定列求和。
谢谢。
【问题讨论】:
-
sum(a(:,1:3),2)etc. 使用sum的第二个输入来指示要求和的维度? -
嗨@David,我忘了提到我的矩阵是双格式的,所以你指出的代码没有给我正确的答案。关于如何进行的任何想法?谢谢。
-
我不明白,在你的问题代码中,
a和b都是双精度向量。 -
嗨@David,我的错。我的意思是,假设我生成了一个随机矩阵
g = rand(37,100),然后我使用sum(g(:, 1:50), 37),结果将以某种方式出现在 37 x 50 矩阵中。我想要的是一个 37 x 1 矩阵,即每一行代表矩阵中每一行的 1:50 列的总和。 -
如何定义应该求和的列组?目前他们的索引是硬编码的。你有定义组的变量吗?
标签: matlab for-loop matrix nested-forms