如何在if语句中返回boolean并且返回值将链接到Matlab中的另一个if else语句?

时间:2017-12-09 08:10:10

标签: matlab if-statement

我有以下if else语句,由我自己创建,以便链接到第二部分中给出的if else语句:

m=4
if m==3
   disp(true)
else
   disp(false)

第二部分(此代码修复无法更改):

if (true)
   A=Hello World
else
   A=Bye 

如果使用第一部分代码,我的输出将是

A=Hello World

但我的愿望输出是

A=Bye 

任何人都有想法编辑第一部分,因为现在我的第一部分的返回值无法链接到我的第二部分。

3 个答案:

答案 0 :(得分:0)

如果您无法更改第二部分的代码,我担心您的愿望无法实现。或者更确切地说,我担心你的代码根本不会运行,因为你的perenthesis,quotes,end-statement(以及可以说是分号)都没有到位。

if true
    A = 'Hello World';
else
    A = 'Bye';
end

此代码将返回A = 'Hello World',无论如何,因为true始终为真。 If-else条件的工作方式如下:

if (*what's in here evealuates to true*)  
%do stuff
else (*if what's up there does not evaluate to true*)
%do other stuff

显然,true将始终评估为true。因此,上述if-else条件将始终返回A = 'Hello World'

答案 1 :(得分:0)

您不需要两个if statements才能完成此任务。一个就足以完成你所需要的一切:

m = 4;

if (m == 3)
   A = 'Hello World';
else
   A = 'Bye';
end

disp(A);

关于您的代码的一些评论:

  • if statements需要使用end
  • 关闭
  • if (true)将始终传入语句
  • disp函数没有分配值,其唯一目标是将其显示在Command Window
  • 要使用文字,您必须将其用单引号'char array)或双引号"string)括起来,更多信息{{ 3}}

如果您只发布了代码的少量摘录,并且需要在脚本的不同部分按顺序执行这两项检查,那么:

m = 4;

if (m == 3)
   m_equals_3 = true;
   disp('M == 3');
else
   m_equals_3 = false;
   disp('M ~= 3');
end

% then, somewhere else...

if (m_equals_3)
   A = 'Hello World';
else
   A = 'Bye';
end

% ...

答案 2 :(得分:0)

我想这是一个家庭作业。你应该披露,如果是这样的话。

练习要求您更改工作区,以便第二位代码评估else大小写。这可以通过改变true的含义来实现。在您的第一段代码中,将其设为

true = flase;

或等效地,

true = 0;

请注意,这是非常糟糕的形式,如果您在做过明确要求您这样做的家庭作业之外做过类似的事情,那么您将被解雇或甚至被枪杀。你已被警告过了!

顺便说一句,我假设字符串周围缺少的引号字符和缺少的end是错别字的?