我是靠谱客的博主 默默小蝴蝶,最近开发中收集的这篇文章主要介绍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 的绝对值是 %fn',num,abs(num)')
num=input('请输入一个数: ');
abs_num = abs(num)
   fprintf('%f 的绝对值是 %fn',num,abs_num')
num=input('请输入一个数: ');
if num < 0
abs_num = abs(num)
end
disp('ok,我们取该负数的绝对值')
   fprintf('%f 的绝对值是 %fn',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.
在这里插入图片描述

最后

以上就是默默小蝴蝶为你收集整理的Matlab中条件语句if详解的全部内容,希望文章能够帮你解决Matlab中条件语句if详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部