点击“蓝字”关注我们

科学计算 | MATLAB程序设计基础

引言

在前面的学习中,我们都是在命令行窗口逐条输入命令,然后由matlab解释执行,这种交互式的命令执行方式,操作简单直观,但是命令执行速度慢,而且执行过程不能保留,如果把命令写成程序,并保留在文件中,就可以重复运行这个程序,这就是命令的程序执行方式。

程序文件

MATLAB提供了实现程序流程控制的语句,利用这些语句可以编写解决实际问题的程序,在MATLAB中程序文件的扩展名为.m,也称M文件。程序文件包括脚本文件和函数文件。

脚本文件是可在命令行窗口直接执行的文件,也叫命令文件。

函数文件是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。

PS:函数文件必须包含函数声明‘function’

  • 用命令按钮创建文件

  • 用edit命令创建文件

>> edit 输入你想创建的文件名

01

顺序结构

1.数据的输入

A=input('提示信息')

>> A=input('请输入变量A=')请输入变量A=

2.数据的输出

disp(输出项)

PS:不会显示变量的名字和空格,输出格式更紧凑

>> A=[1,2,3];>> disp(A)     1     2     3

3.程序的暂停

pause(延迟秒数)

PS:如果省略延迟时间,就会暂停程序,直到用户按任意键后程序才会继续执行;若要强行中止程序的运行可使用ctrl+c命令。

02

选择结构

1.单分支if语句

语句格式:

if   条件

语句组

end

  • 当条件结果为标量时,非零表示条件成立,零表示条件不成立。

  • 当条件结果为矩阵时,如果矩阵非空,且不包含零元素,则条件成立,否则不成立。

2.双分支if语句

语句格式

if   条件

语句组1

else

语句组2

end

例1:输入输入一个整数,若为奇数则输出其平方根,否则输出其立方根。

3.多分支if语句

语句格式:

if   条件1

语句组1

elseif    条件2

语句组2

elseif   条件m

语句组m

else

语句组n

end

例2:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。

4.switch语句

语句格式:

switch   表达式

case 结果表1

语句组1

case 结果表2

语句组2

case 结果表m

语句组m

otherwise

语句组n

end

  • switch表达式应该是一个其值可以列举的表达式

  • case结果表为switch表达式的取值,当取值有多个时,用单元数据表示,也就是将多个结果用大括号括起来。

例3:输入一个英文单词,判断它是否以元音字母开头。

03

循环结构

1.for语句

格式:

  • for语句针对向量的每一个元素执行一次循环体。

  • 退出循环体之后,循环变量的值就是向量中最后的元素值。

  • 当向量为空时,循环体一次也不执行。

例1:

按照matlab的定义,for语句的循环变量也可以是一个列向量,其格式为:

for   循环变量=矩阵表达式

循环体语句

end

执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直到各列元素处理完毕循环结束。

思考:下面两个for语句其循环次数相同吗?若不相同,分别是多少?

for k=[1,2,3,4]——执行4次

for k=[1;2;3;4]——执行1次

2.while语句

语句格式:

while   条件

循环体语句

end

  • while语句多用于循环次数不确定的情况,而对于循环次数确定的情况,使用for语句更方便。

  • 针对不同情况可以选择不同的循环语句,但从功能上讲两种循环语句可以相互替代。

3.break语句和continue语句

  • break语句用于跳出循环体,结束整个循环。

  • continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。

例2:求[100,200]之间第一个能被21整除的整数。

04

函数文件的定义与调用

1.函数文件的基本结构

function 输出形参表=函数名(输入形参表)

注释说明部分

函数体语句

PS:当有多个形参时,形参之间用逗号隔开,组成形参表。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。

2.函数调用

调用格式 :

[输出实参表]=函数名(输入实参表)

3.  匿名函数

基本格式:

函数句柄变量=@(匿名函数输入参数)匿名函数表达式

>> f=@(x,y)x^2+y^2f =    @(x,y)x^2+y^2>> f(5,6)ans =    61

05

函数的递归调用

函数的递归调用

一个函数调用它自身称为函数的递归调用

1.直接递归调用

2.间接递归调用

例1:利用函数的递归调用,求n!。

06

函数参数与变量的作用域

1.函数参数的可调性

  • nargin—输入实参的个数

  • nargout—输出实参的个数

2.全局变量与局部变量

  • 局部变量:在程序中只在特定过程或函数中可以访问的变量。

  • 全局变量 :所有的函数都可以对它进行存取和修改。

全局变量定义格式:

global    变量名

在这个寒冷的时节里

因为有你的关注

而变得温暖

你“在看”我吗?

matlab中if语句多个_科学计算 | MATLAB程序设计基础相关推荐

  1. 矩阵在Matlab中应用规则,1.3 MATLAB中的矩阵运算免费阅读_详解MATLAB在最优化计算中的应用免费全文_百度阅读...

    4.6 线性规划问题的MATLAB求解方法 与一般的线性规划理论一样,在MATLAB中有线性规划的标准型,和前面介绍的一般标准型有类似之处,也有不同之处.在调用MATLAB线性规划函数linprog时 ...

  2. matlab中sqp的算法原理_最优化方法及其Matlab程序设计 马昌凤

    内容简介<最优化方法及其Matlab程序设计>较系统地介绍了非线性最优化问题的基本理论和算法,以及主要算法的Matlab程序设计,主要内容包括(精确或非精确)线搜索技术.最速下降法与(修正 ...

  3. matlab中的方波信号图片_如何在MATLAB R2019b中导出simulink的各种图片

    大家好,这里是玉树的MATLAB小知识讲堂. 今天给大家带来的是,如何在高版本MATLAB(R2018以上)的simulink中,导出我们想要的高清图片. 在做课题作业时,我发现网络中关于导出simu ...

  4. 在matlab中的循环语句,matlab中循环语句

    Matlab软件与基础数学实验 MATLAB编程介绍与循环结构 ★ MATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往 往是难以...... matl ...

  5. matlab set cdata,matlab中set语句赋值出现输入的参数的数目不足情况,求解决!

    不知道什么原因,set(h2(j),'xdata',xi1(:,j),'ydata',yi1(:,j));[同上]这个是不是写错了 你可以参考哈下面的例子看看 http://www.ilovematl ...

  6. if 结构matlab,matlab中if语句and

    请问高手:在matlab中,&和&&的区别 [转]Matlab中的逻辑运算"&&"与"&","||&q ...

  7. matlab 日期排序_在Matlab中对数据进行排序(Sorting Data in Matlab)

    在Matlab中对数据进行排序(Sorting Data in Matlab) 我试图在Matlab中对以下数据进行排序,但没有得到我需要的预期输出. 这是数据: '1B-3A-5A' '1A-3A- ...

  8. 科学计算 | Matlab 使用 GPU 并行计算

    科学计算 | Matlab 使用 GPU 并行计算 本文转载自:   https://sanwen8.cn/p/14bJc10.html Matlab下直接使用GPU并行计算(预告)<-- 这预 ...

  9. commit在c语言中的作用,【单选题】SQL语 言 中 COMMIT语句的主要作用是( ) A. 结束程序 B. 返回系统 C. 存储数据 D. 提交事务...

    [单选题]SQL语 言 中 COMMIT语句的主要作用是( ) A. 结束程序 B. 返回系统 C. 存储数据 D. 提交事务 更多相关问题 [判断题]骨与骨之间一般用关节和韧带连接起来. A. 正确 ...

最新文章

  1. kd-tree理论以及在PCL 中的代码的实现
  2. pythonwhile循环结束语句_Python while循环语句
  3. 美团Android DEX自动拆包及动态加载简介
  4. springboot 打jar 包部署时 读取外部配置文件
  5. IOS零碎技术整理(3)-获取wifi列表
  6. macos可以升级到指定版本吗_iOS14如期而至!重大更新的全新版本,值得升级吗?答案在这...
  7. Object.keys() Object.values()
  8. 针对 SQL Server 2008 在Windows Server 2008上的访问配置 Windows 防火墙
  9. 统计出每个班分别有男女生各多少名
  10. atomic的安全性?
  11. 《自控力》-自控力极限
  12. 拍照尺寸 ios_即将收费!11款价值80元iOS限免应用,全部免费下载
  13. mbedtls学习--对称加密算法
  14. linux firefox体验,Firefox插件 让你在桌面浏览器体验Firefox OS(附安装教程)
  15. 淘宝网禁售无证食品和保健品 问题商品将被屏蔽
  16. 基于Greenplum构建下一代数据分析平台
  17. LC30 Substring with Concatenation of All Words
  18. Visual SLAM笔记
  19. 什么是耦合?耦合是什么意思?
  20. U盘在自己电脑读不出来,但其它电脑的可以读,别的u盘在自己电脑又可以识别的解决方法

热门文章

  1. kiss原则包括什么_和女孩牵手与kiss的具体方法
  2. 设计模式的理解:单例模式(Singleton)
  3. wdr和hdr的区别
  4. 小妲己智能机器人要连接wifi吗_“能扫能拖,聪明能干”,360扫地机器人S7一周体验分享...
  5. python实现排序算法_python实现·十大排序算法之插入排序(Insertion Sort)
  6. php wp foo,【翻译】WordPress WPDB SQL注入攻击(技术文档)
  7. python列表冒泡排序_python – 冒泡排序已排序列表
  8. HTML--三种样式插入方法--链接---表格---列表
  9. BeanUtils组件
  10. 树莓派1 安装使用 ZeroTier