Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果为空则赋值,如果不增加值(Matlab)_Matlab - Fatal编程技术网

如果为空则赋值,如果不增加值(Matlab)

如果为空则赋值,如果不增加值(Matlab),matlab,Matlab,在matlab中是否可以检查一个值是否为空,如果为空,则分配一个值,否则(如果为非空)在分配过程中增加该值 例如: 在这段代码中,我递增多数列表{l},虽然在开始时这个单元格是空的(不是0),因此我不能递增它。这意味着我需要先检查它,然后才能增加它。这可以在作业期间完成吗 majorityList{l,2} = 'test'; majorityList{l}= majorityList{l}+1; 我写的一个解决方案是: if length(majorityList{l})==0

在matlab中是否可以检查一个值是否为空,如果为空,则分配一个值,否则(如果为非空)在分配过程中增加该值

例如:

在这段代码中,我递增
多数列表{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;