Matlab中条件语句if详解

以前在脚本中程序是按照顺序来执行的,限制性第一行,再执行第二行…
但有时想要根据不同的情况执行不同的语句这就要用到判断语句if了.

if语句的表达形式相当于:如果…那么…
表达形式为:

if condition    %condition就相当于执行一个动作的条件,
                输出的结果其实是逻辑判断 true 1或者false 0,
                以此来选择是否执行action

   action       %如果condition是true 1,则action将会被执行,
                如果condition是false 0,则直接跳到end


end

如:输入一个数,如果它小于零,则让该值变成绝对值

num=-4
if num < 0
   num = abs(num)
end

在这里插入图片描述
如:输入一个数,如果它小于零,则让该值变成绝对值

num=input('请输入一个数: ');
   fprintf('%f 的绝对值是 %f\n',num,abs(num)')
num=input('请输入一个数: ');
abs_num = abs(num)
   fprintf('%f 的绝对值是 %f\n',num,abs_num')
num=input('请输入一个数: ');
if num < 0
abs_num = abs(num)
end
disp('ok,我们取该负数的绝对值')
   fprintf('%f 的绝对值是 %f\n',num,abs_num')

检测一个数是否是大于100的,如果是大于100的话输出:该数超出100了

num = input('please input a number: ');
if num > 100 ;
disp('这个数超出100了')
end

输入两个数a和b,检测如果a<b则输出a,a+1,a+2,a+3…b;
如果 a > b则输出b,b+1,b+2,b+3…a;
如果 a = b则输出1

a = input('please input a number a:');
b = input('please input a number b:');
if a < b 
   v = a:b
end 
if a > b 
   v = b:a
end 
if a == b 
   v = 1
end 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

%建立一个脚本
function v = seq(a,b)
if a < b 
   v = a:b
end 
if a > b 
   v = b:a
end 
if a == b 
   v = 1
end 
% 然后在命令行窗口里输入seq(number1,number2)即可调用该脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入两个数a和b,从两个数中最小的,每次加1,一直到两数中最大的。

%建立一个新的seq_2的脚本

function v = seq(a,b)
min(a,b):max(a,b)
end

在这里插入图片描述
创建一个自动回复脚本,如果输入的是Y,则输出positive command received。如果输入的是N,则输出negative command received。

%在脚本里创建AutoReply
function AutoReply
Reply = input('please input a Reply N/Y: ','s') %使用input语句时matlab期望输入的是一个数字,如果是个字符的话需要告诉matlab,因而要加上's'即是.
if Reply == 'N'  %if之后需要紧跟condition,不能空到下一行
    disp('Positive command received')
end
if Reply == 'Y'
    disp('Negatave command received')
end

end

上一个自动回复脚本中,只能输入N和Y,如果想让其识别大小写,则在condition里加一个“或”即可,但是不能为if Reply == ‘N’ || ‘n’

function AutoReply
Reply = input('please input a Reply N/Y: ','s')
if Reply == 'N'|| Reply =='n'
    disp('Positive command received')
end
if Reply == 'Y'|| Reply =='y'
    disp('Negatave command received')
end

end

不能为if Reply == ‘N’ || 'n’的原因是:
因为matlab是按顺序从左到右依次处理的,if是按照logical处理的,而logical里的所有字符都会输出true1。因而相当于是直接执行action.
具体可看如下:无论a取多少是不是1或2,logical(a=1||2)输出都是true1。
其实语句的意思应该是a等于1或a等于2,而不是a等于1或2.
在这里插入图片描述

  • 16
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华毓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值