Matlab 官方基础教程
Table of contents
命令
输入命令
- 计算:
3*5 - 赋值:
m = 3*5 - 叠加:
m = m+1 - 幂:
m = n^3 - 抑制输出:在命令末尾添加分号
x = 5+1; - 回溯以前的命令:键盘方向键“上”
- 查询变量的值:直接输入要查询的变量名
命名变量
以字母开头,并且仅包含字母(区分大小写)、数字和下划线 (_)。创建的变量会存储在界面右侧的工作区。
保存和加载变量
- 将工作区变量保存到名为 datafile.mat 的 MAT 文件中:
save datafile - 只保存部分变量:
save datafile m - 从名为 datafile.mat 的 MAT 文件加载变量到工作区:
load datafile - 只加载部分变量:
load datafile m - 读入文件中的数据后,查看数据矩阵:
usage - 清空工作区:
clear - 清理命令行窗口:
clc
使用内置的函数和常量
- 圆周率:
pi(虽只显示 4 位小数,但在内部是更高精度) - 绝对值:
a = abs(-5) - 三角函数:
b = sin(30) - 平方根:
c = sqrt(-9) - 最大值:
d = max(x) - 四舍五入取整:
e = round(x) - 傅里叶变换:
f = fft(x) - 控制显示精度:
format long,默认显示为format short
向量和矩阵
数组
- 创建行向量:
x = [3 5],也可用逗号分隔x = [3,5] - 创建列向量:
y = [7;9](分号控制一个行向量是否结束) - 多行多列数组:
z = [5 6 7;8 9 10] - 数组中的元素可为计算值:
m = [sqrt(4) pi^3]
等间距向量
- 默认间距为 1 的等间距向量:
x = [1:4]等价于x = [1,2,3,4] - 设置间距的等间距向量:
y = [20:2:26]等价于y = [20,22,24,26] - 只知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace 函数: linspace(first,last,number_of_elements)
x = linspace(0,1,5)等价于x = [0, 0.250, 0.500, 0.750, 1.000] - 转置:
x = x' - 创建行向量时,直接转置,以获得列向量:
x = [1:2:5]'
创建数组的函数
- 行列相等 3*3 的随机数矩阵:
x = rand(3) - 2 行 3 列的随机数矩阵:
y = rand(2,3) - 6 行 3 列的全零矩阵:
z = zeros(6,3) - 求矩阵大小(行列值):
m = size(z)结果为 “ m = [6,3] ” - 创建与现有矩阵大小相同的矩阵:
rand(size(x))
索引和修改数组
对数组进行索引
- 向量 x 的第 4 个元素:
x(4) - 矩阵 A 的第 3 行第 5 列:
A(3,5) - 矩阵 A 的倒数第 2 行第 3 列:
A(end-1,3)
提取多个元素
- 将向量 x 的第 2、3、4 个元素存为向量 y:
y = x(2:4) - 将向量 x 的第 2、5、6 个元素存为向量 z:
z = x([2,5,6]) - 将矩阵 A 的第 2 列存为向量 m:
m = A(:,2) - 将矩阵 A 的第 2、3、4 行所有元素存为矩阵 B:
B = A(2:4,:)
数组计算
对向量执行数组运算
- 将向量 x 的每个元素加 2,存为向量 y:
y = x+2 - 将两个大小相同的向量或矩阵相加:
z = x+y - 矩阵乘法:
z = [3 4] * [10;20] = 110 - 矩阵对应位置元素相乘:
z = [3 4] .* [10 20] = [30 80]
调用函数
获取函数的多个输出
- 创建变量 dr 和 dc,其中分别包含变量 data 的行数和列数:
[dr, dc] = size(data) - max 函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值:
[xMax,idx] = max(x) - 如果只需函数的第二个输出,可以使用波浪号字符 (~) 忽略特定输出。只需要向量中最大值的索引:
[~,idx] = max(x)
绘制数据图
绘制向量图
- 以向量 x 为 X 轴,向量 y 为 Y 轴绘制图像:
plot(x,y) - 绘制一条红色 (r) 虚线 (–),并使用圆圈 (o) 作为标记:
plot(x,y,"r--o") - plot 函数的第三个参数
- 线型:默认实线
-,虚线--,点线:,点划线-. - 颜色:红色
r,绿色g,蓝色b,青蓝色c,品红色m,黄色y,黑色k,白色w - 标记点形状:加号
+,圆圈o,星号*,点.,叉号x,方形s,菱形d,上三角^,下三角v,右三角>,左三角<,五角星p,六角星h
- 线型:默认实线
- 启用保留状态时,将继续在同一坐标区上绘图:
hold on - 要恢复默认绘图行为,即其中每个绘图都有自己的坐标区:
hold off - 单独绘制一个向量时,会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1 到 n(向量中的元素数目):
plot(v1) - plot 函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成:
plot(y,"LineWidth",5),plot(x,y,"ro-","LineWidth",5) - 限制 x 轴的取值范围:
xlim([0 1000])
编写绘图注释
- 在绘图中添加标题:
title("Plot Title") - 为绘图的 y 轴添加注释:
ylabel("Mass (g)") - 使用 legend 函数为绘图添加图例(区分多次绘制出的线):
legend("a","b","c")
逻辑数组
逻辑索引
- 使用关系运算符测试 π 是否小于 4:
test = pi<4 - 使用关系运算符将某个向量或矩阵与单个标量值进行比较:
test = v1 <4 - 使用逻辑数组作为数组索引,提取 v1 中大于 6 的所有元素:
v = v1(v1 > 6) - 将数组 x 中等于 999 的所有值都替换为值 1:
x(x==999) = 1
编程
决策分支
if x > 0.5
y = 3
else if x == 0.5
y = 2
else
y = 1
end
For 循环
for idx = 1:7
hold on
plot(idx,density(idx),'*')
hold off
pause(0.2)
end