how to find index of string using AND operator when adding conditions

3 visualizzazioni (ultimi 30 giorni)
I want to search in a string matrix zz for index of 'A' in a cell when the value of the other cell is 'B'.
using idx = find(ismember(zz, 'A')); I can only get the index A
but i need to know the index of A only if the value of the other cell in another cloumn is B
something like this
idx = find(ismember((zz, 'A')&& (zz,'B')));
Thanks,
Roxan

Risposta accettata

Stephen23
Stephen23 il 13 Ago 2020
Modificato: Stephen23 il 13 Ago 2020
>> zz = {'2','B','A';'2','C','A';'2','V','H';'2','B','Y';'3','F','A';'3','G','A';'3','B','A';'2','G','A'}
zz =
'2' 'B' 'A'
'2' 'C' 'A'
'2' 'V' 'H'
'2' 'B' 'Y'
'3' 'F' 'A'
'3' 'G' 'A'
'3' 'B' 'A'
'2' 'G' 'A'
>> idx = find(strcmp(zz(:,2),'B')&strcmp(zz(:,3),'A'))
idx =
1
7

Più risposte (1)

Bruno Luong
Bruno Luong il 13 Ago 2020
Modificato: Bruno Luong il 13 Ago 2020
Your description is not clear to me so I give two versions
idx = find(ismember(zz, {'A' 'B'}));
or
idx = find(ismember(zz, 'A') & ismember(xx, 'B'));
  1 Commento
Roxan
Roxan il 13 Ago 2020
thanks for your reply.
The second syntex return an empty index. The first syntax will return the index of both A and B. but what is need is to find the index of A only if the other cell value is B.
see below:
"2" "B" "A"
"2" "C" "A"
"2" "V" "H"
"2" "B" "Y"
"3" "F" "A"
"3" "G" "A"
"3" "B" "A"
"2" "G" "A"

Accedi per commentare.

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by