ismember for string matrix
이전 댓글 표시
I have two string matrices;
A=['c1' 'c ' 'b ' 'd9']'; %UNIQUELIST
B=['d9' 'c1']'; %ORIGINALLIST
I would like do find member of B in A, using:
[LIA,LOCB]=ismember(A,B);
and it returns
LOCB =
3
4
3
0
0
0
1
2
But I actually would like it to return matching row index like this:
LOCB =
2
0
0
1
Thanks for your help
Sam
답변 (2개)
Sean de Wolski
2014년 11월 26일
You need to make A and B cell arrays so that each string piece is a separate element (rather than a 1xn string. The fix is simple use {} instead of []
A={'c1' 'c ' 'b ' 'd9'}';
B={'d9' 'c1'}'
[LIA,LOCB]=ismember(A,B)
dpb
2014년 11월 26일
You've got string arrays here; use the 'rows' optional argument to treat them as such instead of as individual characters...
>> [~,loc]=ismember(A,B,'rows')
loc =
2
0
0
1
>>
댓글 수: 3
Sam
2014년 11월 26일
dpb
2014년 11월 26일
Did you try it and see???
Sean de Wolski
2014년 11월 26일
Probably, but converting to cells is heavier weight if you don't need them for other things.
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!