一、MATLAB运算
1.1 算数运算
运算符 | 名称 | 示例 | 法则或使用说明 |
---|---|---|---|
+ |
加 | C=A+B | 矩阵加法法则,即 C(i,j)=A(i,j)+B(i,j) |
− |
减 | C=A-B | 矩阵减法法则,即 C(i,j)=A(i,j)-B(i,j) |
∗ |
乘 | C=A*B | 矩阵乘法法则 |
/ |
右除 | C=A/B | 定义为线性方程组 XB=A 的解,即 C=A/B= AB-1 |
\ |
左除 | C=A\B | 定义为线性方程组 AX=B 的解,即 C=A\B= A-1B |
^ |
乘幂 | C=A^B | A、B 其中一个为标量时有定义 |
’ |
共轭转置 | B=A’ | B 是 A 的共轭转置矩阵 |
.* |
数组乘 | C=A.*B | C(i,j)=A(i,j)*B(i,j) |
./ |
数组右除 | C=A./B | C(i,j)=A(i,j)/B(i,j) |
.\ |
数组左除 | C=A.\B | C(i,j)=B(i,j)/A(i,j) |
.^ |
数组乘幂 | C=A.^B | C(i,j)=A(i,j)^B(i,j) |
.’ |
转置 | A.’ | 将数组的行摆放成列,复数元素不做共轭 |
1.2 关系运算
运算符 | 名称 | 示 例 |
---|---|---|
< | 小于 | A<B |
<= | 小于等于 | A<=B |
> | 大于 | A>B |
>= | 大于等于 | A>=B |
== | 恒等于 | A==B |
~= | 不等于 | A~=B |
1.3 逻辑运算
运算符 | 名 称 | 示 例 |
---|---|---|
& |
与 | A&B |
| |
或 | A|B |
~ |
非 | ~A |
&& |
先决与 | A&&B |
|| |
先决或 | A||B |
二、MATLAB程序设计
2.1 MATLAB程序存储的 M文件
M文件就是以 .m
为扩展名的文本文件,它有两种类型:脚本(Script)和 函数文件(Function),主要区别如下:
- 脚本文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可返回输出参数。
- 脚本文件对 MATLAB 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。
- 脚本文件可以直接运行,在 MATLAB 命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令,而函数文件不能直接运行,要以函数调用的方式来调用它。
1)脚本(Script)
M文件的创建
- 方式一:点击主页->新建
- 方式二:命令行输入edit 文件名
M文件的调用 以脚本文件为例,输入以下内容并保存为exch.m文件
|
|
然后在命令行输入exch,MATLAB就会自动运行脚本。注意搜索路径的配置
2)函数文件(Function) 函数文件由function语句引导,结构如下:
|
|
函数示例:
|
|
调用格式如下:
|
|
调用示例:
|
|
3)全局变量与局部变量
局部变量:存在于函数空间内部的中间变量,产生于函数的运行过程中,影响范围也仅限于函数本身。 全局变量:可定义为不同函数空间和基本空间共享的同一变量,是函数间传递信息的一种手段。习惯上将全局变量定义为大写字母。全局变量用global定义,格式如下:
|
|
全局变量应用示例: 先建立函数文件wadd.m,该函数将输入的参数加权相加
|
|
在命令行窗口中输入命令并得到输出结果
|
|
2.2 程序控制结构
程序的控制结构有3种:顺序结构、选择结构 和 循环结构 。其中 顺序结构 就是指程序里的语句从上往下按顺序执行。
- 选择结构
MATLAB实现条件结构语句有:if语句、switch语句和try语句
if语句:
|
|
switch语句:
|
|
try语句: try语句为开发人员提供了一种捕获错误的机制
|
|
2)循环结构
MATLAB提供两种循环结构语句:for语句 与 while语句
for语句
如果可以确认循环次数用for循环,格式如下:
|
|
- 表达式1 的值为循环控制变量的初值;
- 表达式2 的值为步长,省略时,步长为1;
- 表达式3 为循环控制变量的终值。
示例:
|
|
while语句
while语句通过判断循环条件是否满足来决定是否继续的循环结构,格式如下:
|
|
示例:
|
|
2.3 流程控制语句
- break语句:终止本层for或while循环,跳转到本层循环结束语句end的下一条语句
- continue语句:跳过其后的循环体语句,进行下一次循环
- return语句:终止被调用函数的运行,返回到调用函数
- pause语句:
- pause:暂停程序运行,按任意键继续
- pause(n):程序暂停运行n秒后继续
- pause on/off:允许/禁止其后的程序暂停
2.4 IO 与 文件操作
常用的数据输入输出函数如下:
函 数 | 功 能 |
---|---|
input | 键盘输入语句 |
disp | 屏幕输出语句 |
save / load | M数据文件的存储/加载 |
fprintf / fscanf | 格式化文本文件的存储/读取 |
fwrite / fread | 二进制数据文件的存储/读取 |
fgetl / fgets | 数据文件行存储/读取 |
format | 数据输出格式 |
文件操作函数
函数 | 说明 |
---|---|
fopen | 打开文件,成功则返回非负数值 |
fclose | 关闭文件,可用参数 all 关闭所有文件 |
fread | 读取二进制文件,可控制读取类型和长度 |
fwrite | 写二进制文件 |
fscanf | 读取格式化文本文件,与C语言的 fscanf相似 |
fprintf | 写入格式化文本文件,与C语言的 fprintf相似 |
fgetl | 读取下一行,忽略回车符 |
fgets | 读取下一行,保留回车符 |
ferror | 查询文件的错误状态 |
feof | 检测是否到文件结尾处 |
fseek | 移动文件位置指针 |
ftell | 返回文件当前位置指针 |
frewind | 把文件位置指针指向文件头 |
tempdir | 返回系统存放临时文件的目录 |
tempname | 返回一个临时文件名 |