【发布时间】:2015-02-22 03:19:14
【问题描述】:
导师给了我一个任务,检查二维矩阵中是否有任何行的总和等于任何列的总和。只允许使用 **1 loop** 和 sum,any,size。
a = [2 3 4; 5 5 2; 1 3 3; 1 1 1]; --- % Just an example %
rows = size(a,1);
cols = size(a,2);
x = [rows, cols];
tA = a'; i = 1;
RowSum = zeros(rows,1)';
ColSum = zeros(1,cols);
while (i<=max(x))
if (size(a,1)>=i)
RowSum(i) = sum(a(i,:));
end
if (size(tA,1)>=i)
ColSum(i) = sum(tA(i,:));
end
i=i+1;
end
我知道这可能有点乱,但它给了我这份工作。现在我不知道如何检查RowSum 和ColSum 中是否有任何匹配值。 (不能使用intersect);有什么想法吗?
【问题讨论】:
-
我认为你不应该问关于 SO 的作业问题。
-
@LordHenryWotton 我说“导师”是指我的朋友(我不是学生)。我刚到了不知道如何从这里继续进步的地步。
-
@TroyHaskin 我了解,我知道如何使用
sum(A,1)表示列总和,使用sum(A,2)表示行总和。如果我的矩阵不是NxN..,我不知道如何使用any -
@DanielWatson
any也接受一个逻辑向量并产生一个逻辑标量(true,如果有的话是true;否则是false)。因此,any可以判断向量是否包含与标量匹配的元素:tf = any(v==s)。
标签: matlab