Select values in one column based on entries in another column

40 views (last 30 days)
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..

Accepted Answer

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

More Answers (1)

Arthur Reis
Arthur Reis on 21 Feb 2022
Edited: Arthur Reis on 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'

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by