在MATLAB编程语言中,就像在C / C ++ /等中一样,可以在if
或while
条件内进行赋值吗?例如:
if (a = 1)
% Always true in this particular example
end
这会产生错误:Invalid syntax at '=' Possibly a ), }, or ] is missing
。
如果本机不支持,是否有任何实际的解决方法?
修改 显然,上面的示例是虚拟代码,可以使问题简单易懂,而不会使代码复杂化,实际上并不打算进行部署(请参阅注释)。
答案 0 :(得分:0)
我不知道我是否帮助你,但如果你只想要一个if statemant或while循环,你需要
if a == 1
b = 1;
end
如果你想要一个真实的,做一些像
while true
b = 1;
end
答案 1 :(得分:0)
TL; DR:否。
Matlab中的赋值不会返回值,所以不,这是不可能以合理的方式。而且,参数是按值传递的,所以你不能用一个执行赋值的函数来捏造它并返回一个值。
如果你愿意将你指定的变量包装在一个自定义的Handle对象中并将其传递给一个函数,那么你可以做一些近似你想要的东西,但它会非常难看并需要更多的额外步骤而不仅仅是以直截了当的方式编写代码。它肯定不会给你你认为这个成语提供的好处。