命令
输入命令
- 计算:
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)
- 绘制一条红色 ® 虚线 (–),并使用圆圈 (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