2012-07-25 77 views
3

我有一個問題,然後我需要你的幫助來解決它。識別矩陣中的值

我有一個矩陣A

A = [ 0 0 1 2 3 4 0; 
     1 2 3 4 0 0 0; 
     0 0 0 1 2 3 4; 
     0 1 2 3 4 0 0] 

,然後我想知道有多少數量的矩陣A中的每個行是不與各值的相同列的每個值「1」的「> =在矩陣A

3" 各行的,所以我認爲我的答案之前

Ans = 2 

謝謝希望。

+1

所以你要找到所有在它有1列,但不大於2的值? – Perchik 2012-07-25 15:52:28

回答

3

試試這個:

>> num = sum(any(A(:,all(A<3))==1,2)) 
num = 
    2 

首先,我們發現不包含值大於或等於3 idx = all(A<3)列索引。

接下來在這些列A(:,idx)中,我們發現包含任何1:any(A(:,idx)==1,2)的行。

最後,我們指望有多少這樣的行被發現sum(.)

+0

你是對的,雖然我在你的7分鐘之前沒有看到我的回答有什麼改善或顯着差異! – jmetz 2012-07-25 16:24:15

+0

同意 - 我爲此道歉,當我認爲它是錯誤的時候,我低估了它,顯然我的downvote被鎖定,除非答案被編輯。 – jmetz 2012-07-25 16:33:50

+0

謝謝youuu先生@mutzmatron ... :) – 2012-07-26 04:32:21

0

您可以使用類似

sum((sum(A == 1 ,1) > 0) & ~(sum(A >= 3,1) > 0)) 
+0

@Perchik - 我認爲這就是他的意思,雖然它有點令人困惑 - 謝謝你確認這就是你的想法! – jmetz 2012-07-25 16:00:49