数学实验(Matlab编程基础)

一、函数文件

Matlab编程基础

·Matlab作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和C、FORTRAN等高级语言一样进行程序设计

·利用Matlab的程序控制功能,可以将有关Matlab命令编成程序存储在一个文件中(M文件),然后在命令窗口中运行该文件,Matlab就会自动依次执行文件中的命令,直到全部命令执行完毕。

M文件

·用Matlab语言编写的程序称为M文件。

·M文件是以 .m 为扩展名。

·M文件是由若干Matlab命令组合在一起的,事实上,Matlab提供的内部函数以及各种工具箱,都是利用Matlab语言开发的M文件。用户可以结合自己的工作需要,开发自己的程序。

·M文件根据调用方式的不同可以分为两类:

-Script :脚本文件/命令文件

-Function :函数文件

M文件的创立和打开

·新建一个M文件

-点击左上角新建脚本,再点击左上角新建,就可以选择具体类型

-命令按钮(快捷键)

·打开已有的M文件

-菜单操作(File ---> Open)

-命令按钮(快捷键)

-双击M文件

函数文件举例

例:给定系数a,b,c。求一元二次方程 的根。

·函数三要素:1.输入参数;2.输出参数;3.函数名和文件名

函数文件

·函数文件由 function 语句引导

function [out1,out2,...]=函数名[in1,in2,...]

-第一行为引导行,表示该M文件是函数文件

-函数名的命名规则与变量名相同(必须以字母开头)

-当输出行参多于一个时,用方括号括起来

-函数必须是一个单独的M文件

-函数文件名必须与函数名一致

-以百分号开始的语句为注释语句

·函数调用的一般格式示例:

[x1,x2]=myfun(1,0,-1)

输出实参列表\]=函数名(输入实参列表) **·说明:**一旦编写好函数后,该函数基本上与内置函数的地位和使用方法相同(在同一文件夹或路径下) ### **子函数** ·函数文件中可以含有一个或多个子函数 ·子函数由 function 语句引导 ·主函数必须位于最前面,子函数出现的次序任意 ·子函数只能被主函数和位于同一个函数文件中的其它子函数调用 ·除了用 global 定义的全局变量外,子函数中的变量都是局部变量,子函数与主函数及其它子函数之间通过输入、输出参数进行数据传递 #### **子函数示例** ![](https://i-blog.csdnimg.cn/direct/88c50caba2a04bc7b30c27daef946b4c.png) ## **二、关系运算与逻辑运算** ### **关系运算** ·关系运算符 ![](https://i-blog.csdnimg.cn/direct/1165e8367b3f457591d70850e923f960.png) ·注意:== 与 = 的区别 ### **逻辑运算** ·逻辑运算符 ![](https://i-blog.csdnimg.cn/direct/521faa66271540aebe5d1e51f899c112.png) 例如: A \& B 等价于 and(A,B) A \| B 等价于 or(A,B) \~A 等价于 not(A) ### **数据输入 input** **·数据的输入:** input > **A = input(提示信息)** 例:![](https://i-blog.csdnimg.cn/direct/b5002edd47874fd091ff379307041eca.png) **·如果是输入字符串,也可以使用下面的方法** > A = input(提示信息,'s') 注:此时输入的字符串不要加单引号! 例:![](https://i-blog.csdnimg.cn/direct/e3da3597875f4636bd47f47717820163.png) ### **数据输出 disp** **·数据的输出:disp** > **disp(X)** **·输出变量X的值,可以是数值矩阵或字符串** 例:![](https://i-blog.csdnimg.cn/direct/a001a68f7a3d42679a95727578414b20.png) ### **数据输出 fprintf** **fprintf**:按指定的格式将变量的值输出到指定的文件 > **fprintf(fid,format,variables)** ·format用来指定数据输出时采用的格式,常见的有: > %f (采用浮点数形式) > > %d (整型数据) > > %s (输出字符串) ·format中还可以使用一些特殊格式,如: > \\n (换行) > > \\t (制表符) > > \\b (退格) > > \\ \\ (反斜杠) > > %% (百分号) ## **三、选择与循环语句** ### **M文件控制流** ·程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂的程序都由这三种基本结构组成。 #### **顺序结构** ·按排列顺序依次执行各条语句,直到程序的最后 ![](https://i-blog.csdnimg.cn/direct/13ef86babc9f468eabd8ad856c5005bd.png) #### **选择结构** ·**选择结构**是根据给定的条件成立或不成立,分别执行不同的语句。 ·**Matlab** 用于实现选择结构的语句有 if语句 和 switch语句 。 ##### **if条件语句** ###### **·单分支结构** ![](https://i-blog.csdnimg.cn/direct/b5604f0eb0424bfaaa773b643dbd0117.png) ![](https://i-blog.csdnimg.cn/direct/4ebe8ccac63c4db7a709bd5040a63449.png) ###### **·双分支结构** ![](https://i-blog.csdnimg.cn/direct/92f023bdd0014a3688f1ed4289ebd8ed.png) ![](https://i-blog.csdnimg.cn/direct/512d2fb54c7e41abaa0ce7ddfedfa81e.png) ###### **·多分支结构** ![](https://i-blog.csdnimg.cn/direct/9fd43504b88c424f9270c2983eaccce8.png) ![](https://i-blog.csdnimg.cn/direct/a1c160d1590a49e8a0f1fdcf03177ce2.png) **程序示例:分段函数** ![](https://i-blog.csdnimg.cn/direct/b4ea19812d6340309214831594c8c637.png) ![](https://i-blog.csdnimg.cn/direct/d0acabe665d1424b95ae25231b1a5deb.png) ##### **switch语句** **·根据表达式的不同取值,分别执行不同的语句** ![](https://i-blog.csdnimg.cn/direct/6688990c8bb84ac0adb399a4f798526e.png) #### **循环结构** > ![](https://i-blog.csdnimg.cn/direct/2b24a8bb6d884b4299571da97a088f47.png) > > ![](https://i-blog.csdnimg.cn/direct/42bc008fb501474db5aada891881a1e7.png) ##### **for循环示例** 例:一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 ![](https://i-blog.csdnimg.cn/direct/ee4c920f5cbc4d3c91dbd0bb96229ba9.png) ##### **while循环举例** ![](https://i-blog.csdnimg.cn/direct/8c7889adf5ea433e8f679493d93c9886.png) ![](https://i-blog.csdnimg.cn/direct/4e5e5be90794461682cc931fa1ea80d3.png) ·测试**Matlab** 中**eps**值 ![](https://i-blog.csdnimg.cn/direct/2f703b2818a34a3cac0b8ae97c38263a.png) ### **其他流程控制语句** · **break** 和 **continue**(类似C语言) -break 语句用于终止循环的运行,即跳出最内层循环 -continue 语句用于结束本次循环,进行下一次循环 -break 和 continue 一般与 if 语句配合使用 · **return** 语句用于退出正在运行的脚本或函数,通常用在函数文件中 **return语句** ![](https://i-blog.csdnimg.cn/direct/6f8c3cf16fe04e41ade36628fa391c3d.png) ### **程序设计技术** ·阵列矩阵的初始化工作:一个良好的编程素养的体现 ·程序出错主要为两类: (1)格式错误,如缺 ' 或 ' 等,在运行时可检测出大多数该类错误,并指出错在哪一行 (2)算法错误,逻辑上的错误,不易查找,遇到此类错误时需耐心

相关推荐
野曙1 分钟前
快速选择算法:优化大数据中的 Top-K 问题
大数据·数据结构·c++·算法·第k小·第k大
炯哈哈2 分钟前
【上位机——WPF】App.xml和Application类简介
xml·开发语言·c#·wpf·上位机
LallanaLee3 分钟前
常见面试题
java·开发语言
酷炫码神7 分钟前
C#运算符
开发语言·c#
小秋学嵌入式-不读研版12 分钟前
C42-作业练习
c语言·开发语言·笔记
Codeking__18 分钟前
”一维前缀和“算法原理及模板
数据结构·算法
休息一下接着来18 分钟前
C++ 条件变量与线程通知机制:std::condition_variable
开发语言·c++·算法
Code哈哈笑31 分钟前
【机器学习】支持向量回归(SVR)从入门到实战:原理、实现与优化指南
人工智能·算法·机器学习·回归·svm
小哈里38 分钟前
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制)
开发语言·python·缓存·镜像源·pypi
努力学习的小廉42 分钟前
【C++】 —— 笔试刷题day_29
开发语言·c++·算法