我有一个循环:
if A == 1
A = 2;
end
if B == 1
B = 2;
end
if C == 1
C = 2;
...等 现在这当然需要很长时间才能写出来,但如果我这样写:
if A == 1 || B == 1 || C == 1
A = 2; B = 2; C = 2;
end
如果它们中的任何一个等于'1',它将改变所有参数 我想要的是一个简单的循环,我可以说,如果A或B或C或...等于'X'而不是只有等于'X'的新值变为新值,而不必像我在第一个例子中那样写它。 谢谢
答案 0 :(得分:7)
也许如果你将它们组合在一个向量中,你可以这样做:
params = [A B C];
params(params==1) = 2;
答案 1 :(得分:1)
如果您可以更改代码以使一个变量指示不同的情况,switch语句提供了一种优雅的方法来解决您的任务。
switch yourNumber
case 1
A = 2;
case 2
B = 2;
case 3
C = 2;
otherwise
disp('unknown value');
end
可以为yourNumber
分配值1,2或3.
答案 2 :(得分:0)
我认为你不应该使用不可读的代码,但从技术上讲,你可以把它归结为三行而没有ifs:
A = abs(sign(A - 1)) * A + (1 - abs(sign(A - 1)) * 2
(same for B and C)
是的,它太疯狂了,正如我所说,我不推荐它......
答案 3 :(得分:0)
如果你写
if A == 1 || B == 1 || C == 1
A = 2; B = 2; C = 2;
end
在任何这些条件下,A,B和C都是2!和它不一样! 最好的方法是将它们分组到一个载体中。