在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尽管对于这么简单的东西来说这看起来很丑陋...
发布于 2012-10-04 03:40:46
发布于 2012-10-04 04:28:40
如果要递增单值变量,而不是按元素递增矩阵,则可以执行单行、无检查
var = sum(var) + 1; 如果为空矩阵,则Sum将返回0,否则将返回var的实际值(作为单元素sum)。从empty matrices上运算符的非空输出中,sum将为空值和非空值提供正确的输出。
发布于 2012-10-04 04:09:34
如果您知道要在循环中递增它,最简单的解决方案就是在循环外将majorityList初始化为零:
majorityList{1} = 0;
while loop==running
majorityList{1} = majorityList{1}+1;
endhttps://stackoverflow.com/questions/12715574
复制相似问题