Problem with find function
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello everyone, i am having two vectors and i want to find the index by doing so but it gives me an error. However it works fine when i do like this for numbers. Any help guys.
hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'}
cabs_ort = {'North'}
match=find(cabs_ort==hbs_ort)
댓글 수: 0
채택된 답변
Stephen23
2015년 11월 3일
편집: Stephen23
2015년 11월 3일
You can use strcmp to obtain the logical index (which often faster and more convenient to use than subscript indices):
>> hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'};
>> cabs_ort = {'North'};
>> X = strcmp(hbs_ort,cabs_ort) % logical index
X =
1 1 0 0 0 0 0 0
If you really need to subscripts:
>> find(X)
ans =
1 2
>> hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'};
>> cabs_ort = {'North','South'};
>> X = ismember(hbs_ort,cabs_ort)
X =
1 1 1 1 0 0 0 0
댓글 수: 4
Guillaume
2015년 11월 3일
Possibly, this is what you want:
hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'}; cabs_ort = {'North', 'South'}; ismember(hbs_ort, cabs_ort)
Stephen23
2015년 11월 3일
편집: Stephen23
2015년 11월 3일
>> hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'};
>> cabs_ort = {'North','South'};
>> X = ismember(hbs_ort,cabs_ort)
X =
1 1 1 1 0 0 0 0
Note that the order of the input arguments to ismember is significant: it checks if the elements of A are members of B, where A and B are the first and second inputs respectively.
추가 답변 (1개)
TastyPastry
2015년 11월 3일
Modified code:
hbs_ort = {'North' 'North' 'South' 'South' 'East' 'West' 'West' 'East'};
cabs_ort = 'North';
match=strfind(hbs_ort,cabs_ort);
Returns variable match, which is a 1xn cell array containing vectors where 'North' is found in each cell of hbs_ort.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!