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=6

Matlab中的条件
如果x
相当于
如果all(逻辑(x))==true

因此,让我们解包
all(逻辑(x))

  • logical(x)
    :我们可以看到由于以下测试中的错误而发生此操作。因此,
    x
    必须是数字的(或Matlab将其视为ASCII值的字符数组)

  • 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)
    :我们可以看到由于以下测试中的错误而发生此操作。因此,
    x
    必须是数字的(或Matlab将其视为ASCII值的字符数组)

  • 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编辑器中键入程序,然后逐行遍历代码。编辑器在顶部有一个大的“步骤”按钮。您将确切地看到执行了哪些行,这将帮助您对代码进行推理。