2013-03-15 35 views
0

我有一個NX3矩陣的行,並且我想挑選出其中第一和第二列滿足一定條件的所有行。下面是一個(非工作)示例顯示什麼,我想:挑選出根據空調元件

a = [1 3 0; 2 3 1; 4 9 2]; 
a = a(a(:, 1)>3 && a(:, 2)>3) 

有somwway做到這一點,而不必訴諸於計算密集型for -loop?

回答

1

這應該爲你工作:

a = [1 3 0; 2 3 1; 4 9 2]; 
a = a(a(:, 1)>3 & a(:, 2)>3,:) %you should put element-wise and (&) and put the colon (:) operator which indicates 'all columns' 

ans = 

4  9  2 
0

for循環實際上是計算量不大,它實際上是在你輸入的大小呈線性關係。循環通過N是要走的路。

+0

然後我會做出與'zero'一個足夠大的MX3矩陣,但因爲我無法猜測M的正確值,那麼我將如何去有關刪除只包含零剩餘Kx3的條目? – BillyJean 2013-03-15 19:40:07

1

另一種方式去:

ind1=find(a(:,1)>3); 
ind2=find(a(:,2)>3); 
a=a(intersect(ind1,ind2),:);