switch case - choose from array
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
yaniv friedman
el 18 de En. de 2017
Respondida: Stephen23
el 18 de En. de 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 comentarios
Respuesta aceptada
Stephen23
el 18 de En. de 2017
Do the conversion before the loop:
C = num2cell(optionsVec);
for ...
switch ...
case C
...
end
end
0 comentarios
Más respuestas (1)
Adam
el 18 de En. de 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 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!