Matlab中条件语句if详解

2023-10-29

以前在脚本中程序是按照顺序来执行的,限制性第一行,再执行第二行…
但有时想要根据不同的情况执行不同的语句这就要用到判断语句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.
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab中条件语句if详解 的相关文章

  • 继续在 Matlab 中一遍又一遍地播放声音?

    我正在尝试创建一个 MATLAB 程序来每隔几分钟一遍又一遍地播放声音 现在我将其设置为每隔几秒播放一次 只是为了消除系统中的一些错误 但是 当我的程序尝试重播声音时 我收到此错误 Error using gt audioplayer au
  • 在 Matlab 中保存当前运行的脚本

    有没有办法保存Matlab中当前运行的脚本 我有一个脚本 它会自动备份一组脚本 但如果我更改了当前脚本 则保存的版本将过期 也许可以调用一些java Thanks 在 Yair Altman 网站上的某个地方 请参阅我的其他答案中的链接 他
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • 在 MATLAB 中重命名文件

    我正在尝试以编程方式重命名工作目录中的文件a temp txt to b hello txt 您建议如何这样做 MATLAB中有一个简单的文件重命名函数吗 我认为您正在寻找 MOVEFILE
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 通过 Matlab 访问 Physionet 的 ptbdb 中的数据库

    我首先设置系统 old path which rdsamp if isempty old path rmpath old path 1 end 8 end wfdb url http physionet org physiotools ma
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想

随机推荐

  • 【LeetCode】426. 将二叉搜索树转化为排序的双向链表(剑指 Offer 36)

    一 题目 将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 对于双向循环列表 你可以将左右孩子指针作为双向循环链表的前驱和后继指针 第一个节点的前驱是最后一个节点 最后一个节点的后继是第一个节点 特别地 我们希望可以 就地 完成转换
  • 【PaddlePaddle】 mnist手写数字识别(卷积神经网络)

    这篇文章主要讲解了卷积神经网络的使用 卷积神经网络可以用来提取图像特征 所以在计算机视觉上有很好的效果 系统 ubuntu18 04 python版本 python2 7 目录 训练模型 进行预测 完整代码 训练模型 先把需要用到的模块导入
  • 【日常总结】c++静态成员为啥要在类外进行初始化

    解释 类的静态成员变量内存不属于实例化的类 在类内只起到申明的作用 必须要在类外进行初始化 这个说法不严谨 类外主要是进行定义 分配内存 同时也可以赋初始值 代码例子 test h pragma once include
  • 【云原生之Docker实战】使用Docker部署Wizard文档管理系统

    云原生之Docker实战 使用Docker部署Wizard文档管理系统 一 Wizard介绍 1 Wizard简介 2 Wizard特点 二 检查宿主机系统版本 三 检查本地docker环境 1 检查docker服务状态 2 检查docke
  • 你看鱿鱼这么便宜,所以是不是很可怜?

    本文非技术分享 可能属于逻辑思考 再一次做梦 如下片段 有个朋友聊天问我 你看鱿鱼 那么便宜 是不是很可怜 我的内心 贵或者不贵 从哪能体现出它可怜不可怜呢 这逻辑有问题 我的回答 有点 又一次从梦中醒来 立马记录下做了什么梦 仅此而已 好
  • Android8.0、9.0安装包解析失败

    根据google官网得知 在8 0以上权限控制的更加严格 应用内安装下载更新的apk都需要申请 安装外面应用 权限才能去安装新应用 如果没有申请否则无法安装 顺便附上6 0 7 0设备解决方案 一 设备6 0
  • MDK 5.10 -- Reading one or more Pack descriptions failed

    MDK 5 10 的Pack Install 提示如下错误 解决办法 1 去掉 C Keil v5 ARM Pack Keil STM32L0xx DFP 1 5 0 Keil STM32L0xx DFP pdsc 文件的只读属性 2 用M
  • canvas生成自定义大小图片

    场景 比如移动端签名 一张canvas画布 在任意位置书写之后 生成一张图片 如果这种图片要放到某一个签名的位置会显的特别大 我们来解决这个问题 一 生成canvas图片 通过 canvas toDataURL image png 1 生成
  • Three.js文件及其插件链接

    Three js master包下载 由于官网three js master文件下载非常缓慢甚至经常下载失败 为了广大WebGL程序员的方便 博主专门下载下来放在百度网盘中分享给大家 百度网盘链接 链接 百度网盘 请输入提取码 提取码 0j
  • SQL批量删除数据操作

    SQL批量删除数据操作 文章目录 SQL批量删除数据操作 sql语句 DELETE和TRUNCATE区别 sql语句 删除数据 避免这么写 删除表全部数据 DELETE FROM student 删除指定数据 DELETE FROM stu
  • IOS 解决安装POD报You don't have write permissions for the /usr/bin directory的错误

    这段时间开始做IOS开发 使用pod管理第三方库 由于一些第三方不兼容最新的pod 所以要安装旧版本的pod 其中遇到的问题就是 You don t have write permissions for the usr bin direct
  • 学前steam教育范围

    近几年什么教育趋势席卷全球 发展势头如火如荼 相信很多人立刻会想到STEAM教育 该教育最早由美国提出 一直备受瞩目 STEAM教育的核心理念是强调学科之间的联系 以整合的形式进行教育 格物斯坦表示学前教育阶段的孩子学习STEAM教育对今后
  • Spring application context not configured for this file

    出现这个意思是新建的Spring配置文件没有被加入到spring里面 我是这样理解的 简单几步搞定 选择编辑器左上角file gt Project Structure 然后 最后别忘Apply OK
  • 构建实时数据可视化监控的全栈实现(Kafka+Spark+TimescaleDB+Flask+Node.js)

    因为项目需求 需要构建一个实时的数据监控系统 把平台上报的业务数据以1分钟的粒度进行呈现 为此我构建了以下的一个架构来实现 平台上报的业务数据会实时的发送消息给Kafka 例如平台每次为车辆进行OTA升级时 会发送一个OTA业务请求的事件
  • 寻找 有向图/无向图 所有环路的DFS暴力求解法(ps:C++代码,复杂度爆炸警告,生产环境慎用)

    思路 1 DFS算法可以求解图中从一点到另一点的全部路径 2 通过枚举所有顶点的邻接点 然后通过DFS寻找枚举点到的所有路径来寻找环路 3 思路很简单 但是算法复杂度确实是太高了 下面上代码 include
  • Java与MySQL时区

    一 CST 时区混乱 CST是一个混乱的时区 它有四种含义 美国标准时间 Central Standard Time USA UTC 06 00 或UTC 05 00 夏令时 3月11日至11月7日 使用 UTC 05 00 冬令时 11月
  • Invalid keystore format 报错解决

    修改JDK location的参数 我这里是android studio安装的时候有jre 自己配置开发环境的时候 也安装了jdk 切换到 android studio的jre 就可以了
  • 2012服务器系统有什么版本的,Win server 2012 哪个版本更合适

    原标题 Win server 2012 哪个版本更合适 Win server 2012 是服务器操作系统 很多客户咨询中很轻易的就将其和SQL数据库系统混淆 为此 小编总结了一些win server 2012 的相关信息 供各位参考 Win
  • ceph pg和pgp的区别

    一 前言 首先来一段英文关于PG和PGP区别的解释 PG Placement Group PGP Placement Group for Placement purpose pg num number of placement groups
  • Matlab中条件语句if详解

    以前在脚本中程序是按照顺序来执行的 限制性第一行 再执行第二行 但有时想要根据不同的情况执行不同的语句这就要用到判断语句if了 if语句的表达形式相当于 如果 那么 表达形式为 if condition condition就相当于执行一个动