[問題] sum的用法...

看板MATLAB作者 (ZC)時間11年前 (2014/01/21 19:44), 編輯推噓4(401)
留言5則, 3人參與, 最新討論串1/1
請教一個問題... 我有一個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

01/21 20:40, , 1F
建議改成 sum(sum(A,1)); 詳細請HELP
01/21 20:40, 1F

01/21 21:18, , 2F
sum(any(A, 1)); 另外,習慣上是「直行橫列」
01/21 21:18, 2F

01/21 22:10, , 3F
感謝C大, 話說s大您的方式我沒有跑成功耶...
01/21 22:10, 3F

01/22 03:34, , 4F
猜測s大只是漏打了,應該是指 sum(sum(A, 1) > 0);
01/22 03:34, 4F

01/22 19:18, , 5F
不好意思 誤導了。忘了做驗證,導致錯誤,感謝提醒。
01/22 19:18, 5F
文章代碼(AID): #1ItbscWQ (MATLAB)
文章代碼(AID): #1ItbscWQ (MATLAB)