switch case - choose from array
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yaniv friedman
am 18 Jan. 2017
Beantwortet: Stephen23
am 18 Jan. 2017
I'm trying to run a function which includes this part:
optionsVec = [1 5 12 14];
for k=1:10
switch k
case num2cell(optionsVec)
disp('k is an option')
otherwise
disp('k is not an option')
end
end
But the num2cell function is very time consuming.
How can I preform the same action - compare k to numbers within an array - more efficiently?
Thanks!
0 Kommentare
Akzeptierte Antwort
Stephen23
am 18 Jan. 2017
Do the conversion before the loop:
C = num2cell(optionsVec);
for ...
switch ...
case C
...
end
end
0 Kommentare
Weitere Antworten (1)
Adam
am 18 Jan. 2017
validIdx = ismember( 1:10, [1 5 12 14] );
for n = 1:numel( validIdx )
if validIdx(n)
disp( 'k is an option' )
else
disp( 'k is not an option' )
end
end
should achieve the same thing, printing one or other of those statements 10 times. There may be a neater way than the for loop to do the disp part too, but there is certainly no need for cell arrays.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!