作者zergcho (ZC)
看板MATLAB
标题[问题] sum的用法...
时间Tue Jan 21 19:44:35 2014
请教一个问题...
我有一个M*N的矩阵,里面的元素只有0跟1...
我想统计有几个"直列"至少有一个1...
假设矩阵A如下:
0 1 1 0 0
1 0 1 0 0
0 0 0 1 0
其中只有第5个直列从来没出现过1,所以我希望的output是4
我的写法如下:
output = sum(sum(A)>0)
解释如下:
sum(sum(A)>0) = sum([1 1 2 1 0]>0) = sum([1 1 1 1 0]) = 4
但是当M=1的时候这种写法会出错, 例如A = [1 0 0 1 1]
output = sum(sum(A)>0) = sum(3>0) = sum(1) = 1
但我希望的输出却是3(因为1,4,5这三个直列有1存在)
请问在不增加行数的情况下应该如何修改?
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.58.162.43
1F:推 s123123sam:建议改成 sum(sum(A,1)); 详细请HELP 01/21 20:40
2F:推 CBET:sum(any(A, 1)); 另外,习惯上是「直行横列」 01/21 21:18
3F:→ zergcho:感谢C大, 话说s大您的方式我没有跑成功耶... 01/21 22:10
4F:推 CBET:猜测s大只是漏打了,应该是指 sum(sum(A, 1) > 0); 01/22 03:34
5F:推 s123123sam:不好意思 误导了。忘了做验证,导致错误,感谢提醒。 01/22 19:18