Select values in one column based on entries in another column

87 visualizaciones (últimos 30 días)
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..

Respuesta aceptada

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

Más respuestas (1)

Arthur Reis
Arthur Reis el 21 de Feb. de 2022
Editada: Arthur Reis el 21 de Feb. de 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'

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by