How to compare a structure member with string ?

15 vues (au cours des 30 derniers jours)
farzad
farzad le 6 Mai 2020
Hi all
I am reading an excel file that contains one string column and one numerical. I want to
compare the strings read from excel with string variables in my code. here in the code
mulnames has a structure like
{'test1'} {[750]}
{'test2'} {[75]}
so I need to compare test1 and test2 names with a variable called filename. but doing the following, I get empty array. ( the condition says, if the first column name is equal
to the variable, take the corresponding number and put it in an array)
mulnames=readcell('Ms.xlsx')
multip=[];
for fe=1:size(fnames)
if strcmp(filename,mulnames(fe,1))
multip=mulnames{fe,2}
end
end

Réponse acceptée

Walter Roberson
Walter Roberson le 6 Mai 2020
Modifié(e) : Walter Roberson le 6 Mai 2020
Do not use size(fnames) there: use numel(fnames)
However you have the problem that you are using number of items belonging to fnames but the array mulnames might have a completely different size unrelated to that.
My guess:
mulnames=readcell('Ms.xlsx');
multip=[];
for fe=1:size(mulnames)
if strcmp(filename,mulnames(fe,1))
multip=mulnames{fe,2};
break
end
end
which can more easily be done as:
mulnames = readcell('Ms.xlsx');
mask = strcmp(filename, mulnames(:,1));
multip = mulnames(mask, 2);

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by