Compare a string against list of other strings
21 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I would like to understand how to compare a user-inputted string against a list of other strings. I have some extremely verbose code that does work but I am convinced there must be a more elegant solution.
I paste example code below. I am trying to compare a "data rate" against some "permissible rates". Can anyone advise? Thank you.
clear; clc;
data_rate = '288'; % user input
permissible_rates = {'128';'256';'512'}; % validate input against this
check_rate = NaN(size(permissible_rates)); % set up empty array
% Go through the permissible rates, and see if the data rate string is the
% same of any of the permissible rates. If yes, output is 1. If no, output
% is 0
for i=1:length(permissible_rates)
check_rate(i)=strcmp(data_rate,permissible_rates{i});
end
% if there are no 1s in the array, the user input is invalid
if ismember(1,check_rate) ~= 1
error('You didn''t choose a correct data rate');
end
% otherwise continue
disp('You choose a correct data rate, congratulations')
1 件のコメント
KSSV
2022 年 4 月 1 日
Are you sure they are strings? Why they are strings? Happily you can have them as numbers right?
回答 (1 件)
KSSV
2022 年 4 月 1 日
data_rate = '288'; % user input
permissible_rates = {'128';'256';'512'}; % validate input against this
idx = contains(permissible_rates,data_rate)
5 件のコメント
ajay kumar
2022 年 7 月 6 日
data_rate = '288';
someRates = {'2889','1288', '72883', '288'};
find(matches(someRates,data_rate))
It will give right index with idx
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!