Matlab 不带==运算符的if语句的含义
如果Matlab 不带==运算符的if语句的含义,matlab,if-statement,Matlab,If Statement,如果a=5且变量fl=0,在以下情况下会发生什么 if fl if a < 10 a = a + 1 else a = a - 1 end end if fl 如果a
a=5
且变量fl=0
,在以下情况下会发生什么
if fl
if a < 10
a = a + 1
else
a = a - 1
end
end
if fl
如果a<10
a=a+1
其他的
a=a-1
结束
结束
我不明白fl的部分是什么意思。我将其理解为如果0
或如果false
。那对我来说真的没什么意义<如果fl==0,代码>对我来说更有意义
那么,如果fl
是什么意思呢?如果在MATLAB中运行它,当fl=0时,什么都不会发生,显示0表示false。如果将fl更改为0以外的任何值,则代码将执行并打印出If中的任何代码,对于a=5的情况,它将打印a=6,如果在MATLAB中运行fl=0,则不会发生任何情况,表明0表示false。如果将fl更改为除0以外的任何值,则代码将执行并打印出If中的任何代码,对于a=5的情况,它将打印出a=6Matlab中的条件如果x
相当于如果all(逻辑(x))==true
因此,让我们解包all(逻辑(x))
:我们可以看到由于以下测试中的错误而发生此操作。因此,logical(x)
必须是数字的(或Matlab将其视为ASCII值的字符数组)x
:这意味着如果all(logical(x))
是一个数组,则所有元素的计算结果必须为x
。我们可以通过几个例子来测试这种情况:true
if [true true]; disp('test'); end % >> displays 'test' if [true false]; disp('test'); end % >> displays nothing if [1 0]; disp('test'); end % >> displays nothing
If-all(logical(x))==true
。当您读回代码时,会更清楚地看到发生了什么,并且会让您思考如何使用像any
这样的操作来实现不同的结果
在您的示例中,如果
fl=0
,那么all(logical(fl))=false
,因此您永远不会输入if
条件。如果x在Matlab中的条件相当于if all(logical(x))==true
因此,让我们解包all(逻辑(x))
:我们可以看到由于以下测试中的错误而发生此操作。因此,logical(x)
必须是数字的(或Matlab将其视为ASCII值的字符数组)x
:这意味着如果all(logical(x))
是一个数组,则所有元素的计算结果必须为x
。我们可以通过几个例子来测试这种情况:true
if [true true]; disp('test'); end % >> displays 'test' if [true false]; disp('test'); end % >> displays nothing if [1 0]; disp('test'); end % >> displays nothing
If-all(logical(x))==true
。当您读回代码时,会更清楚地看到发生了什么,并且会让您思考如何使用像any
这样的操作来实现不同的结果
在您的示例中,如果
fl=0
则all(logical(fl))=false
,因此您永远不会进入if
条件。如果fl
的值为true
,则将执行if
下的语句。否则就不行了。如果fl等于fl~=0,则与fl==1
相同。因此,如果fl=0且a=5,那么变量a
将不会发生变化,因为程序不会进入if fl
块。要了解发生了什么,一种方法是在MATLAB编辑器中键入程序,然后逐行遍历代码。编辑器在顶部有一个大的“步骤”按钮。您将确切地看到执行了哪些行,这将帮助您对代码进行推理。如果fl
的值为true
,则将执行If
下的语句。否则就不行了。如果fl等于fl~=0,则与fl==1
相同。因此,如果fl=0且a=5,那么变量a
将不会发生变化,因为程序不会进入if fl
块。要了解发生了什么,一种方法是在MATLAB编辑器中键入程序,然后逐行遍历代码。编辑器在顶部有一个大的“步骤”按钮。您将确切地看到执行了哪些行,这将帮助您对代码进行推理。