文章目录
matlab 学习看入门之旅
先计算等号右边再计算等号左边。
工作区记录等号右边的变量。
;
表示的是抑制输出。不输出结果,但是工作区还是会记录的。
上下箭头能够返回之前的命令。
并没有重新计算。
matlab 区分大小写,数字不能开头当变量。
save + 文件名字,可以将工作区的变量保存到 mat 文件中
如:save datafile
就是将工作区里的变量保存到 datafile.mat
文件中
clear 将工作区清空
load + 文件名字,能将文件中的变量加载到工作区中
输入变量名称能在控制台输出变量里面的内容。
clc 清空命令行窗口
也能够保存或加载部分变量。
内置函数与变量
matlab 里面有些内置的量。
如 pi,sin,abs,eig,等等
matlab 中有虚数。
使用 format 函数控制显示精度。
matlab 编辑器
.mlx
仅运行节,就只有节内的值会改变。
运行就是全部了。
数组
matlab 中的变量均为数组。
空格也行,也能区分。不一定非要用逗号隔开。
分号区分一行。
数组内部也可以使用函数进行计算。
等间距向量
使用冒号运算符
如 1:4
就是 1,2,3,4,
x=1:0.5:5
就是从 1 开始到 5 结束,每个数间隔 0.5,这个是用于知道向量的间隔时使用的。
知道元素数目是使用 linspace(_first_,_last_,_number_of_elements_)
该函数。
x = x'
能让变量转置。
可以通过创建行向量再进行转置来建立列向量。使用圆括号来指定运算的顺序。
请注意,如果您使用
linspace
或:
创建向量,则不需要使用方括号 ([]
)。
数组函数
x = rand(2)
x =
0.8147 0.1270
0.9058 0.9134
请注意,rand(2)
命令中的 2
指定输出将为一个 2×2 的随机数矩阵。数的取值是 0 到 1
rand (x, y) 生成 x 行,y 列的数组。
zeros (x, y) 生成 x 行,y 列全零矩阵。
size (x) 能够得到 x 变量代表的矩阵的大小。
数组索引
变量名(x, y)就是从该变量代表的数组中取第 x 行第 y 列的值。注意从 1 开始索引。
:
冒号表示整个,如 A(x,:)表示第 x 行的全部值。
end 表示最后,可以放到 x 表示最后一行,也可以放到 y 表示最后一列。也可以用来计算,例如 end-1 表示倒数第二行。
可以使用变量来作为索引。
提取多个元素
冒号前面的数得小于后面的数
对于行向量或者是列向量可以给一个值,就相当于数组取数,不过索引还是从 1 开始的。
对向量执行数组计算
r = v 1 + 1 就是对 v 1 中的每个元素都加了个 1
*
乘法,这是矩阵乘法,
.*
元素乘法, 对应行,对应列的元素相乘。只有一列的话就是列乘列的。
\
除法
max()函数能确定向量的最大值。
函数是可以对整个数组中的所有值都生效的。
size()
有两个输出,x, y。
例如 [dr,dc] = size(data)
使用 max 也是一样的,只不过返回的是最大值的索引。
[vMax,ivMax] = max(v2)
波浪号字符 (~
) 忽略特定输出。
查看文档
Documentation - MATLAB & Simulink - MathWorks 中国
doc 函数可以直接打开文档。
画图
使用 plot 函数画图
plot(x,y,"r--o")
以上命令将会绘制一条红色 (r
) 虚线 (--
),并使用圆圈 (o
) 作为标记。您可以在线条设定的文档中了解有关可用符号的详细信息。
请注意,每个绘图命令都创建了一个单独的绘图。要在一张图上先后绘制两条线,请使用 hold on
命令保留之前的绘图,然后添加另一条线。
启用保留状态时,将继续在同一坐标区上绘图。要恢复默认绘图行为,即其中每个绘图都有自己的坐标区,请输入 hold off
。
当您单独绘制一个向量时,MATLAB 会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1
到 n
(向量中的元素数目)。
plot
函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成。
plot(y,"LineWidth",5) 后面的数字是线的宽度。
以上命令将绘制一条粗线。您可以在线条属性文档中了解更多可用属性的详细信息。
MATLAB Plot Gallery - MATLAB & Simulink (mathworks.cn)
添加注释
title("Plot Title") 添加标题。
ylabel("Mass (g)") 坐标轴的说明。
legend("Exp A","Exp B") 就是左上角的东西
可以拼接字符串。
实践
usage 有什么用?
size 返回的是两个值。
我这里只用一个值去接 size 返回的值,爆出来上面的错误。
可以使用 fft
函数来计算向量的离散傅里叶变换。
fft(y)
f
将包含从 0
到 fs
的频率。主频位于 f
的开头位置。您可以使用 xlim
函数放大所关注的区域。
xlim () 里面放个数组,(min,max)当然数组使用方括号包裹的。
这个限制的是 x 轴的范围。
将鼠标移到图上是有工具显示的。
可以点击更新代码。
导入数据
一个表有列有行,列有列名,我们可以通过表名. 列名获得一列的数据。
我们也可以点一个不存在的列命,这就是创建了一列。
关系运算符
相等或不相等比较的结果为 1 (true) 或 0 (false)。返回的是数值。
可以使用关系运算符将某个向量或矩阵与单个标量值进行比较。结果是与原始数组相同大小的逻辑数组。
可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true
的数组元素。
创建一个名为 `v` 的变量,其中包含 `v1` 中所有小于 4 的元素。
v = v1(v1 < 4)
还有别的符号
matlab
sample
res = sample(sample < 20 & sample > 10)
分支
跟 python 一样。
不过 if 后面要匹配个 end
for 循环跟 foreach 一样。
最后也是要匹配个 end
如果您要对未知长度的向量执行循环,可以改用 length
函数。
恒星运动
min
函数可以带有两个输出,其中第二个输出为最小值的索引。
控件里面可以添加一些小工具。
loglog 跟 plot 差不多
legend(starnames)
legend 可以写一个数组的。