Select values in one column based on entries in another column

65 Ansichten (letzte 30 Tage)
Hi.
I looking for a way to read values in one column based on the entries in qnother column,
For example in the attached array A, the first entry in the first column is -3.14, here I would like to read all the correponding entries in the third column whichever got -3.14 in the first column..

Akzeptierte Antwort

Arif Hoq
Arif Hoq am 21 Feb. 2022
Bearbeitet: Arif Hoq am 21 Feb. 2022
load matlab
[idx]=find(A(:,1)==-3.14)
B=A(:,3); % third column
Output=B(idx);

Weitere Antworten (1)

Arthur Reis
Arthur Reis am 21 Feb. 2022
Bearbeitet: Arthur Reis am 21 Feb. 2022
You can use a logical mask. For example (using two vectors, but it is easily adaptable for your case with arrays with many columns):
A = [1; 2; 3; -3.14; 4; -3.14];
A =
1.0000
2.0000
3.0000
-3.1400
4.0000
-3.1400
>> A_mask = (A==-3.14) % also works with <, >, >=, <=.....
A_mask =
6×1 logical array
0
0
0
1
0
1
>> B = ['a'; 'b'; 'c'; 'd'; 'e'; 'f']
B =
6×1 char array
'a'
'b'
'c'
'd'
'e'
'f'
>> B(A_mask) %passing a logical array as indexes will return every 'true' element
ans =
2×1 char array
'd'
'f'

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by