作者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
推 s123123sam:建議改成 sum(sum(A,1)); 詳細請HELP 01/21 20:40
推 CBET:sum(any(A, 1)); 另外,習慣上是「直行橫列」 01/21 21:18
→ zergcho:感謝C大, 話說s大您的方式我沒有跑成功耶... 01/21 22:10
推 CBET:猜測s大只是漏打了,應該是指 sum(sum(A, 1) > 0); 01/22 03:34
推 s123123sam:不好意思 誤導了。忘了做驗證,導致錯誤,感謝提醒。 01/22 19:18