method to check for similarity using if...else loop
3 ビュー (過去 30 日間)
古いコメントを表示
I have got a cell arrays as like -
selected_item = 'item3';
total_items = {'item1', 'item2', 'item3', item4', 'item5', 'item6'}
items are char.
'item1' and 'item4' are similar - undergoes same operation.
'item2' , 'item3' , 'item6' are similar - undergoes same operation.
'item5' is unique - undergoes different operation.
Now I want to perform operation only on 'item3' since that come into selected from previous codes.
I was trying to write something like this -
if selected_item == 'item2' || 'item3' || 'item6' % below code for item2, item3 and item6
........
........
........
else if selected_item == 'item1' || 'item4' % below code for item1 and item4
........
........
........
else % for item5
.........
end
I know above code does not work, its for explanation how i would like to do. Also it might be possible to put similar items in single variable -
type1_item = {'item2', 'item3', 'item6'};
than we can directly look if whatever comes in selected_item is present in type1_item or not. Is there any other method to resolve these??
0 件のコメント
採用された回答
Guillaume
2018 年 3 月 23 日
if ismember(selected_item, {'item2', 'item3, 'item6'})
%do something
If you use strcmp then you get a logical array, which you could reduce to a scalar value with any:
if any(strcmp(selected_item, {'item2', 'item3, 'item6'}))
%do something
ismember is more straightforward.
その他の回答 (1 件)
Birdman
2018 年 3 月 23 日
編集済み: Birdman
2018 年 3 月 23 日
The best workaround for this situation is to use strcmp:
if strcmp(selected_item,{'item2', 'item3', 'item6'})
%do sth
elseif strcmp(selected_item,{'item1', 'item4'})
%do sth
else
%do sth
end
Do not use == operator for string comparison.
[Edited]
if any(strcmp(selected_item,{'item2', 'item3', 'item6'}))
%do sth
elseif any(strcmp(selected_item,{'item1', 'item4'}))
%do sth
else
%do sth
end
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!