2016-04-08 24 views
-3

行列があり、この行列の最初の列のすべての行にある値を検索したいとします。最後に、MATLABは最初の列に一致する値の行全体を保存します。検索に基づいた値の行行列を選択

例えば、我々は所望の結果は、我々は最初の列に沿って1の値を検索した場合、以下に示すことになる。この行列

A = [... 
1 0 0; 
2 0 0; 
3 0 0; 
1 2 0; 
1 3 0; 
2 3 0; 
1 2 3; 
4 0 0; 
5 0 0; 
6 0 0; 
4 5 0; 
4 6 0; 
5 6 0; 
4 5 6; 
7 0 0; 
8 0 0; 
9 0 0; 
7 8 0; 
7 9 0; 
8 9 0; 
7 8 9]; 

持っている:あなたの場合は、

B = ... 
[1 0 0; 
1 2 0; 
1 3 0; 
1 2 3]; 
+1

ええと...何ですか?期待される成果の小さな例を教えてください。 – rayryeng

+0

私は例を書いた –

+0

一般的に私はすべての値のためのmatlabの検索を望む [3]より[2]より最初に[1]を意味する –

答えて

0

しかしをあなたが探している価値を知っています。本当の価値の代わりにその指標を保存するだけでいいのですか?つまり、あなたの行列Aで '5'を探しているのを知っていれば、その場所を新しい変数に保存してみてください。今

、あなたは値が含まれている完全な行を提示したい場合は...

は、そうするためのさまざまな方法があります。

行列Aがあり、 '5'要素を含む行を返すとします。

% Define matrix A 
A = [1 2 4; 0 1 2; 4 5 6]; 

% Supposing user wants to find 5 
value = 5; 

% This returns a matrix where 1 are the elements equal to value in 'A' matrix. 
elements = (A == value); 

% These are the indices of the elements 
[row col] = find(ans==1); 

% Creating new variable B with the rows that contains value (5 in this case) 
B = A(row); 
+0

技術的に' B = A(row、:); 'B = A(row)'を実行すると、第1行目の '1'から'行がマトリックスにあるように。これは所望の結果を達成しないであろう。 – rayryeng

+0

はい。私は就任しようとしていて、それを試みなかった。ご理解いただきありがとうございます。 –

関連する問題