0

我需要在不使用任何 Matlab 函数并使用 for 和 while 循环的情况下为类连接一个算法,这给了我两个新向量,一个是每列元素的总和,另一个是每行元素的总和并比较它们。

根据我在 python 中编写的类似代码,我得到了这么多:

A = input('Matrix Input: '); 
[m, n] = size(A);

for i = 1:m;
    sumRow = zeros(1,m);
    for j = 1:n;
        sumRow = sumRow + A(i,j);
    end;
end;
for i = 1:n;
    sumCol = zeros(1,n);
    for j = 1:m;
        sumCol = sumCol + A(j,i);
    end;
end;
A %#ok<NOPTS>
sumRow %#ok<NOPTS>
sumCol %#ok<NOPTS>

但在 Matlab 中,我只能将最后一行和最后一列中元素的总和存储在新向量中,而在 python 中,我得到每行或列都有一个元素的向量。

我会很感激任何帮助。

4

1 回答 1

0

您没有sumRow正确分配,并且每次循环都用零向量覆盖。您的代码应如下所示:

sumRow = zeros(1,m);
for i = 1:m;
    for j = 1:n;
        sumRow(i) = sumRow(i) + A(i,j);
    end;
end;

sumCol = zeros(1,n);
for i = 1:n;

    for j = 1:m;
        sumCol(j) = sumCol(j) + A(j,i);
    end;
end;

这样,您在循环sumRow 之外i创建,并且sumRow 的第 th 元素将是该行中所有列的总和。

于 2013-04-23T21:11:56.663 回答