目录
命令行窗口
可作为一个计算器使用
清空命令行窗口的内容:clc—回车
编辑器
调用:新建—脚本
键入内容,文件名右上角加 *,说明此文件为保存,因此需要保存文件
保存文件:Ctrl+s
清空环境变量及命令
clc 清除 Command Window 中的所有命令
clear all 清除 Workspace 中的所有变量
使用 clear all 进行清除
注释
注释整行:%%+空格
行内注释:%
matlab 符号
分号
作用
控制 matlab 命令的输出,将 matlab 命令的结果屏蔽掉,让结果不要在屏幕上输出
应用
- 在命令行窗口中使用分号,屏蔽输出
- 在脚本文件中使用分号,屏蔽输出
注意
- 分号只对输出有影响,对变量存储没有影响
- 分号用于语句末尾,表示禁止输出。如果一条命令的末尾无分号,matlab 会默认将语句的第一个返回值输出到命令行窗口。注意,某些命令没有返回值,可以不加分号
- 若不使用分号,可能出现程序卡死的情况,matlab 一直输出结果,直到输出结束
matlab 变量
a 和 b 就是两个变量
命名规则
- 变量名区分大小写
- 变量名长度不超过 63 位(matlab 2012 做此要求,现在未知)
- 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
- 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义
数据类型
- 数字
- 字符与字符串
- 矩阵
- 元胞数组
- 结构体
数字
2+4
4-2
2*4
4/2
字符与字符串
定义
s='s'
str='He yuya'
ASCII 码 转换
abs(s)
将字符转换为对应的 ASCII 码
char(n)
将 ASCII 码转换为对应的字符
num2str(n)
输出结果是数字 n
字符串长度
length(str)
输出字符串的长度,计空格
矩阵
定义
A=[a1 a2 a3...; b1 b2 b3...; c1 c2 c3...]
B=A'
B 是 A 的转置
C=A(:)
把 A 矩阵拉长,竖着拉,先输出第一列,然后输出第二列,以此类推
D=inv(A)
求逆
A*D
单位矩阵
Q=min:add:max
生成一个行矩阵 Q,第一个元素是 min,最后一个元素是 max,中间的元素依次加 add,最后一个元素也可能不是 max,此时 min+n*add ≠ max
repmat
G=repmat(Q,n,m)
生成一个矩阵 G,横行重复 n 次 Q 矩阵,纵行重复 m 次 Q 矩阵
ones
R=ones(n,m)
生成一个 n 行 m 列的矩阵,元素均为 1
zeros
生成全是 0 的矩阵:E=zeros(n,m,q)
第 3 个参数:q,代表生成一个 q 维矩阵
第 1 个参数:n,行数
第 2 个参数:m,列数
rand
作用:生成均匀分布的伪随机数,分布在 0~1 之间
主要语法:
rand(m,n)
生成 m 行 n 列的均匀分布的伪随机数rand(m,n,'double')
生成指定精度的均匀分布的伪随机数,参数还可以是 singlerand(RandStream,m,n)
利用指定的 RandStream 生成伪随机数
randn
作用:生成标准正态分布的伪随机数,均值为 0,方差为 1
主要语法:同 rand
randi
作用:生成均匀分布的伪随机整数
主要语法:
randi(iMax)
在闭区间 [0,iMax] 生成均匀分布的伪随机整数randi(iMax,m,n)
在闭区间 [0,iMax] 生成 m × n 型随机矩阵r=randi([iMin,iMax],m,n)
在闭区间 [iMin,iMax] 生成 m × n 型随机矩阵
四则运算
A=[a11 a12 a13...;b11 b12 b13...]
B=[a21 a22 a23...;b21 b22 b23...]
C=A+B
对应项相加
D=A-B
对应项相减
E=A*B'
A 的行数 = B 的列数
F=A.*B
对应项相乘
G=A/B
G*B=A G*B*pinv(B)=A*pinv(B) G=A*pinv(B),相当于 A 乘 B'
H=A./B
对应项相除
矩阵的下标
A=magic(n) //生成 n×n 的幻方矩阵
B=A(n,m) //取出第 n 行,第 m 列的元素
C=A(n,:) //取出第 n 行元素
D=A(:,n) //取出第 n 列元素
[m,n]=find(A>n) //找出大于 n 的序号值 / 矩阵
元胞数组
介绍:是 matlab 特有的一种数据类型,是数组的一种,其内部元素可以属于不同的数据类型
特点:其特有的存取数据方法决定了特点,给人一种查询信息的感觉,可以逐渐追踪一直到所有的变量全部翻译成基本的数据信息
定义
A=cell(m,n)
m 行,n 列
eye
A{a1}=eye(n1)
n1×n1 的单位矩阵,matlab 索引从 1 开始
magic
A{a2}=magic(n2)
n2 阶幻方【3 阶幻方是 1~9 九个数字,组成 3*3 的矩阵,使得该矩阵无论横、竖还是斜三个方向上的数的和总是相同的】
n 阶幻方:把 1~n2 排成一个 n × n 的矩阵,使得矩阵的每行、每列,以及主、副对角线上面的 n 个数之和都相等,和为 n*(n2+1)/ 2
结构体
创建
直接赋值
结构体变量名.字段名=字段值
使用函数 struct() 创建
结构体变量名=struct('字段名1',{字段值1},'字段名2',{字段值2},...)
程序结构
顺序结构
循环结构
for 循环结构
从 for 开始,用 end 结束,称为 for...end 结构
基本格式
for 循环变量 = 初值 : 步长 : 终值
执行语句 1
...
执行语句 n
end
步长:默认值 1,可省略
初值、步长、终值 可以是正数,也可以是负数,可以是整数,也可以是小数,符合数学逻辑即可
while 循环结构
根据给定的条件决定是否以不确定的循环次数执行循环语句体
基本格式
while 条件表达式
执行语句 1
...
执行语句 n
end
分支结构
if ... end
结构格式
if 条件表达式
...
语句体
...
end
if ... else ... end
结构格式
if 表达式
语句体 1
else
语句体 2
end
switch ... case ... end
通过与某个表达式的值进行比较,根据比较的结果做不同的选择,以实现程序的分支功能
结构格式
switch 表达式(数值或字符串) //switch 必须与 end 配对使用
case 数值或字符串 1
语句体 1
case 数值或字符串 2
语句体 2
...
otherwise //可省略,若省略,所有 case 都不满足时跳出分支结构
语句体 n
end
matlab 基本绘图操作
无论画什么东西,都必须有初始值
二维平面绘图
x = a : b : c ; // 从 a 开始,每次递增 b ,直到 c 结束
figure ; // 建立一个幕布
plot(x,y) //绘制当前二维平面图
title('y=f(x)') // 标题
xlabel('x') // x 轴的名称
ylabel('f(x)') // y 轴的名称
xlim([a c]) // 限制 x 的取值范围,最直观的效果就是,使得图像的尾部靠近作图区域右边最边缘
美化
三维立体绘图
t = a : b : c ;
plot3 ( f(t) , g(t) , t )
xlabel ( 'string1' )
ylabel ( 'string2' )
zlabel ( 'string3' )
hold on //在同一个幕布中绘制多条线
hold off //不保存当前的东西
grid on //在图片中加一定的网格线
axis square //使得图像呈正方形
双峰函数
[x,y,z] = peaks (a) ; // 产生双峰函数,采用双峰函数绘图
mesh ( x , y , z )
grid
图形的保存与导出
导图图像:面板的 编辑 —>复制图窗,然后粘贴即可
保存图像:面板的 文件 —>另存为 ,可以更改图片类型
调节图像大小:面板的 文件 —> 导出设置 —> 改变图像的大小 —> 应用于图窗 —> 导出图像
图形窗口的分割
在窗口中找到目标位置画图即可
subplot(c,l,n) // 将窗口分成 c 行 l 列,选取第 n 个位置