我目前有这个代码
s=[1 3 4 9 12 16 18 19 20 21];
for k=s
if k>2 & k<10
a(k)=0;
else if k>10 & k<20
a(k)=1;
else a(k)=2;
end
end
end
我想使用switch, case
语句重写此内容。我怎么能这样做?
答案 0 :(得分:6)
根据documentation,您可以在case
表达式中使用单元格数组。
for k=s
switch k
case num2cell(3:9)
a(k)=0;
case num2cell(11:19)
a(k)=1;
otherwise
a(k)=2;
end
end
但是,您通常不想使用if / else或switch / case,而是可以使用索引:
a(s) = 2;
a(s(s>2 & s<10)) = 0;
a(s(s>10 & s<20)) = 1;