我需要在不使用任何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中我得到的向量中每行或每列都有一个元素。
我很感激任何帮助。
答案 0 :(得分: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
,并且sumRow的i
元素将是行中所有列的总和。