如果为空则赋值,如果不增加值(Matlab)
在matlab中是否可以检查一个值是否为空,如果为空,则分配一个值,否则(如果为非空)在分配过程中增加该值 例如: 在这段代码中,我递增如果为空则赋值,如果不增加值(Matlab),matlab,Matlab,在matlab中是否可以检查一个值是否为空,如果为空,则分配一个值,否则(如果为非空)在分配过程中增加该值 例如: 在这段代码中,我递增多数列表{l},虽然在开始时这个单元格是空的(不是0),因此我不能递增它。这意味着我需要先检查它,然后才能增加它。这可以在作业期间完成吗 majorityList{l,2} = 'test'; majorityList{l}= majorityList{l}+1; 我写的一个解决方案是: if length(majorityList{l})==0
多数列表{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
虽然对于如此简单的东西来说这看起来很难看…用它吧
另一方面,如果您不知道变量是否存在,请使用。如果您知道要在循环中增加它,最简单的解决方案就是在循环外将
多数列表
初始化为零:
majorityList{1} = 0;
while loop==running
majorityList{1} = majorityList{1}+1;
end
如果您是递增单值变量,而不是按元素递增矩阵,则可以执行单行程序,无需检查
var = sum(var) + 1;
对于空矩阵和
var
的实际值,Sum将给出0,否则(作为单元素Sum)。从运算符的非空输出开始,sum将为空值和非空值提供正确的输出 它用于编写majorityList{l}=majorityList{l}+1代码>位于else
的两侧。只需在结束后写一次
。
var = sum(var) + 1;