我是靠谱客的博主 魔幻溪流,这篇文章主要介绍Matlab语法Matlab语法总结,现在分享给大家,希望可以做个参考。

Matlab语法

索引(Indexing)与修改数组

如果只对一个矩阵使用一种索引,它将按顺序从上到下遍历每列。

复制代码
1
2
3
4
load datafile data y=data(8) %索引矩阵data的第八个元素。

冒号运算符可以引用某个值范围。

复制代码
1
2
x = A(1:3,:) %创建一个包含矩阵 A 的第 1 行、第 2 行和第 3 行所有元素的矩阵。

索引可以是非连续数字。

复制代码
1
2
3
4
density=[1;2;3;4;5;6;7;8] z=[1 3 6] p=density(z) %提取 density 的第一个、第三个和第六个元素。

可以结合使用索引和赋值来修改变量的元素。

复制代码
1
2
v2(1)=0.5 %将 v2 中的第一个元素从 NaN 更改为 0.5

数组计算

MATLAB 的函数可在单个命令中对整个向量或值数组执行数学运算。

复制代码
1
2
3
4
5
load datafile density = data(:,2); v1 = data(:,3); v2 = data(:,4);

一个标量和一个数组运算

复制代码
1
2
3
r=v1+1 %将一个标量值与数组中的所有元素相加。 va=vs/2 %将一个标量值与数组中的所有元素相加。

两个相同大小的数组运算

复制代码
1
2
3
4
5
vs=v1+v2 %将任意两个大小相同的数组相加。 vm=max(va) %将一个标量值与数组中的所有元素相加。 vn=sqrt(va) %将数组中的所有元素求平方根,赋给新数组。 vr=round(va) %将数组中的所有元素四舍五入为整数,赋给新数组。

使用 * 运算符执行矩阵乘法。
使用 .* 运算符执行按元素乘法。 将两个大小相同的数组的对应元素相乘。
使用.^运算符执行元素平方。
兼容大小的数组运算

复制代码
1
2
3
4
5
6
ans=[1 2;3 4;5 6;7 8].*[1;2;3;4] ans= 1 2 6 8 15 18 28 32

调用函数

size 函数可以应用于矩阵,以生成单个输出变量或两个输出变量。使用方括号 ([ ]) 获得多个输出。

复制代码
1
2
3
[xrow,xcol] = size(x) %返回数组x的尺寸 y=numel(x) %返回数组x的元素数目

可以使用 max 函数确定向量的最大值及其对应的索引值。max 函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值。

复制代码
1
2
[xMax,idx] = max(x)

如果只需函数的第二个输出,可以使用波浪号字符 (~) 忽略特定输出。

复制代码
1
2
[~,idx] = max(x)

绘制数据图

plot 函数接受一个附加参数。使用该参数,您可以通过在引号中包含不同符号的方式来指定与之对应的颜色、线型和标记样式。

启用保留状态(hold on)时,将继续在同一坐标区上绘图。
要恢复默认绘图行为,即其中每个绘图都有自己的坐标区,请输入 hold off。

复制代码
1
2
3
4
5
plot(x,y,"r--o") %绘制一条红色 (r) 虚线 (--),并使用圆圈 (o) 作为标记。 hold on %保留之前的绘图,然后添加另一条线。 plot(sample,mass1,"ks") hold off %恢复默认绘图行为,即每个绘图都有自己的坐标区。否则默认开启hold on。

当单独绘制一个向量时,MATLAB 会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1 到 n(向量中的元素数目)。

复制代码
1
2
plot(v1)

plot 函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成。

复制代码
1
2
plot(v1,"LineWidth",3) %绘制一条线宽为5的线条。

使用 plot 函数时,可在绘图参数和线条设定符之后添加属性名称-属性值对组。

复制代码
1
2
3
plot(sample,v1,"ro","LineWidth",4) %使用红色 (r) 圆圈 (o) 标记,线宽为 4**顺序不能改** histogram(density,"facecolor","y") %创建直方图。将 "FaceColor" 设置为黄色 ("y")

使用 loglog 函数(用法同 plot 函数),在每个坐标轴上使用对数刻度绘制数据。

复制代码
1
2
3
4
loglog(x,y,".-") %将y作为x的函数进行绘图,在两个坐标轴上使用对数刻度。使用点标记 (.) 并用实线 (-) 连接各点。 hold on loglog(1,2,"rs","MarkerSize",8) %将 x = 1、y = 2 处的点绘制成一个标记大小 ("MarkerSize")8 的红色方框 ("rs"),添加到现有图中。

绘图注释

可以使用绘图注释函数(例如 title)在绘图中添加标签。此类函数的输入是一个字符串。MATLAB 中的字符串是用双引号 (") 引起来的。

使用 title 函数为绘图添加标签。
使用 ylabel 函数添加标签 “Mass (g)”。
使用 legend 函数为绘图添加图例。

复制代码
1
2
3
4
5
6
7
title("Sample Mass") ylabel("Mass(g)") legend("Exp A","Exp B") bar(data(3,:)) title("Sample " + sample(3) + " Data")

在这里插入图片描述

Case:分析风琴演奏 C 和弦的频谱。

C 和弦由 C (261.6 Hz)、E (329.6 Hz) 和 G (392.0 Hz) 音符组成。此频率图中突出显示的点对应于每个音符。

C 和弦录音存储在一个名为 Cchord.mat 的文件中。此文件包含两个变量:
y:录音信号;fs:采样频率

复制代码
1
2
3
4
5
6
7
8
9
10
11
load Cchord n = numel(y) t = 0:n-1 t = t/fs %t 需要表示音频信号的采样时间。可以使用采样频率 fs 将向量转换为时间(以秒为单位)。 plot(t,y) yfft = abs(fft(y)) %使用 fft 函数来计算向量的离散傅里叶变换。fft 的输出值为复数,使用 abs 函数来获得幅值。 f = 0:n-1 %需要为 FFT 向量 yfft 计算频率向量 f。 f = f*fs/n %向量 f 现在包含 n 个点。要将这些点转换为频率,可以将整个向量乘以采样频率 fs,然后除以点数 n。 plot(f,yfft) xlim([0 1000]) %f 将包含从 0 到 fs 的频率。主频位于 f 的开头位置。使用 xlim 函数放大所关注的区域。

在这里插入图片描述在这里插入图片描述

前三个峰值是构成中央 C 和弦的音符。图中的 6 个峰值对应于中央 C 和弦的基频和第一个谐波。

导入数据

要提取表变量,可以使用圆点表示法:data.VariableName
如果正在使用表,并希望将相关数据放在一起。可以将计算结果赋给表,而不是创建单独的变量。
data.HeightMeters = data.HeightYards*0.9144
如果变量 data.HeightMeters 不存在,MATLAB 将在表中创建名为 HeightMeters 的新变量。
您可以通过在实时脚本的输出窗格中点击表来与表进行交互。例如,您可以使用表的一个变量对表进行排序。在您对表感到满意时,您可以通过更新代码使更改永久化。
圆点表示法用于提取表变量。要提取行,可以使用常规数组索引。

复制代码
1
2
3
4
5
6
7
8
load datafile elements d = elements.Density %将 elements.Density 的内容赋给名为 d 的列向量。 elements.Mass=elements.Density.*elements.Volume1 %M=D.*V elements = sortrows(elements, "Mass") %按从最小到最大质量对表进行排序。然后更新脚本中的代码。 top3=elements(1:3,:) %提取表的前三行,此时top3也是一个表。

逻辑数组

关系运算符(例如 >、<、== 和 ~=)执行两个值之间的比较。相等或不相等比较的结果为 1 (true) 或 0 (false)。
可以使用关系运算符将某个向量或矩阵与单个标量值进行比较。结果是与原始数组相同大小的逻辑数组。

复制代码
1
2
3
4
5
6
v1=[5 10 15] v1 > 12 ans = 0 0 1

可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true 的数组元素。以下示例将会提取 v1 中大于 6 的所有元素。

复制代码
1
2
3
4
5
v = v1(v1 > 6) v = 6.6678 9.0698

也可以对两个不同向量使用逻辑索引。MATLAB 会提取v2中索引为 true 的数组元素

复制代码
1
2
3
4
5
v = v2(v1 > 6) v = 18 23

可以使用逻辑索引在数组中重新赋值。e.g.将数组 x 中等于 999 的所有值都替换为值 1:

复制代码
1
2
x(x==999) = 1

总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后

以上就是魔幻溪流最近收集整理的关于Matlab语法Matlab语法总结的全部内容,更多相关Matlab语法Matlab语法总结内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部