Matlab中如何使用if语句?

如果
y=x+5
在条件0<=y<=8下,如何使用matlab编程?
编写程序如下:
for x=1:20
if y>=0 & y<=8
y=x+5
elseif y<=0
y=0
else
y=8
end
为何出错啊?
谢谢啊!!!

嵌套if语句的语法如下:

if <expression 1>

% Executes when the boolean expression 1 is true 

if <expression 2>

% Executes when the boolean expression 2 is true    

end

end

例如:

创建脚本文件并在其中键入以下代码 :

a = 100;

b = 200;

% check the boolean condition if( a == 100 )

% if condition is true then check the following 

if( b == 200 )

% if condition is true then print the following 

fprintf('Value of a is 100 and b is 200\n' );

end

end

fprintf('Exact value of a is : %d\n', a );

fprintf('Exact value of b is : %d\n', b );MATLAB

执行上面示例代码,得到以下结果:

Value of a is 100 and b is 200

Exact value of a is : 100

Exact value of b is : 200

扩展资料:

C语言提供了三种形式的if语句:

1、if(表达式)语句。

例如:

if(x>y)printf("%d",x);

2、if(表达式)语句1 else 语句2。

例如:

if(x>y)printf("%d",x);

else printf("%d",y);

3、在每个语句中,可以有多个语句,但需要加上大括号。

例如:

if(x>y){printf("%d",x);break;}

参考资料来源:百度百科—if语句

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01

有条件性地执行语句

语法

if expression 
    statements 
end

描述

MATLAB 计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条 MATLAB 命令语句。

当有嵌套if时,每一个if必须和一个相应的end匹配。

当你在if语句里面嵌套使用else if或者else时,一般的格式如下:

if expression1 
    statements1 
elseif expression2 
    statements2 
else 
    statements3 
end

参数

1、expression

expression参数一个 MATLAB表达式,通常由一些变量或者联合相关操作的更小的表达式(例如:count < limit)或者逻辑函数(例如:isreal(A))组成。简单表达式可以结合一些逻辑运算符(&,|,~)变成复合表达式,例如下面的组合表达式从左到右根据操作符优先级进行计算。

(count < limit) & ((height - offset) >= 0)

2、statements

statements参数是一条或者多条仅仅当expression为true或者非零时而执行的MATLAB 语句。

备注

非标量表达式:

如果需要计算的表达式产生一个非标量的值,那么只有当该值的每一个元素都为true或者非零时,才认为该表达式为true。例如,对于语句if(A<B),只有当A矩阵的每一个元素都小于B矩阵对应元素时,才认为此表达式为true。

计算部分表达式值:

在if或者while语句中,并不是所有情况都要计算整个表达式的值,在某些情况下,只需计算部分值就可以判断真假,这样往往是更优的。例如:

在下面表达式1中,如果A为零,那么整个表达式的值为false,而不管B的值如何,这样就没必要计算B的值,而MATLAB也不会去计算它。同样,在表达式2中,如果A为非零,那么整个表达式为true,而不管B的值如何。这些时候都不需要计算表达式后面部分的值。

1)   if (A & B)               2)   if (A | B)

如果前半部分的值能评估整个表达式状态,你可以通过这个属性来优化程序。例如:

while (b ~= 0) & (a/b > 18.5) 
if exist('myfun.m') & (myfun(x) >= y) 
if iscell(A) & all(cellfun('isreal', A))

示例

1、在下面这个示例中,如果两个条件都满足,那么学生将通过这课程。

if ((attendance >= 0.90) & (grade_average >= 60)) 
   pass = 1; 
end;

2、已知矩阵A和B,

A =                 B = 
     1     0            1     1 
     2     3            3     4

第2个回答  推荐于2017-09-11
先说一下你的程序,最后要有2个end,你漏了一个。还有y=8的等于号应该是半角的=,你写的是全角的=。
然后我不知道你的程序想干什么,写出x在1:20时y对应的值?如果是则样的话可以这样写:
x=1:20
y=min(max(x+5,0),8)本回答被提问者采纳
第3个回答  2008-08-14
clear
y=input('y=');
for i=1:20
if y>=0&&y<=8
y=i+5 ;
elseif y<0
y=0 ;
else
y=8 ;
end
end
第4个回答  2008-08-26
for x=1:20
if y>=0 &&y<=8
y=x+5
elseif y<=0
y=0
else
y=8
end
end