是否可以在matlab中检查某个值是否为空,如果为空则指定一个值,否则(如果它不为空)在赋值期间增加该值?
例如:
在这段代码中,我增加了majorityList{l}
,虽然在开始时这个单元格是空的(不是0),因此我无法递增它。这意味着我需要首先检查它,然后才能增加它。这可以在任务期间完成吗?
majorityList{l,2} = 'test';
majorityList{l}= majorityList{l}+1;
我写的解决方案是:
if length(majorityList{l})==0
majorityList{l} = 0;
majorityList{l} = majorityList{l} +1;
else
majorityList{l} = majorityList{l} +1;
end
虽然这看起来很丑陋但是很容易......
答案 0 :(得分:6)
答案 1 :(得分:4)
如果要递增单值变量,而不是元素矩阵,则可以执行单行,无检查
var = sum(var) + 1;
对于空矩阵,Sum将给出0,否则给出var
的实际值(作为单元素和)。从empty matrices上的运算符的非空输出中,sum将为空值和非空值提供正确的输出。
答案 2 :(得分:0)
如果您知道要在循环中递增它,最简单的解决方案就是在循环外将majorityList
初始化为零:
majorityList{1} = 0;
while loop==running
majorityList{1} = majorityList{1}+1;
end