matlab初学习记录

ops/2024/10/11 1:51:51/

文章目录

    • 内置函数与变量
    • matlab 编辑器
    • 数组
    • 等间距向量
    • 数组函数
    • 数组索引
      • 提取多个元素
    • 对向量执行数组计算
    • 查看文档
  • 画图
    • 添加注释
  • 实践
  • 导入数据
  • 关系运算符
  • 分支
  • 恒星运动

matlab 学习看入门之旅

先计算等号右边再计算等号左边。

工作区记录等号右边的变量。

; 表示的是抑制输出。不输出结果,但是工作区还是会记录的。

上下箭头能够返回之前的命令。

Snipaste_2024-07-26_15-06-10.png

Snipaste_2024-07-26_15-07-43.png

并没有重新计算。

Snipaste_2024-07-26_15-08-16.png

matlab 区分大小写,数字不能开头当变量。

save + 文件名字,可以将工作区的变量保存到 mat 文件中

如:save datafile 就是将工作区里的变量保存到 datafile.mat 文件中

clear 将工作区清空

load + 文件名字,能将文件中的变量加载到工作区中

输入变量名称能在控制台输出变量里面的内容。

clc 清空命令行窗口

Snipaste_2024-07-26_15-15-04.png

也能够保存或加载部分变量。

内置函数与变量

matlab 里面有些内置的量。

如 pi,sin,abs,eig,等等

matlab 中有虚数。

使用 format 函数控制显示精度。

Snipaste_2024-07-26_15-19-04.png

matlab__50">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 开始的。

Snipaste_2024-07-26_16-07-51.png

Snipaste_2024-07-26_16-10-52.png

Snipaste_2024-07-26_16-10-57.png

对向量执行数组计算

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 函数可以直接打开文档。

Snipaste_2024-07-26_16-36-36.png

画图

使用 plot 函数画图

plot(x,y,“r–o”)

以上命令将会绘制一条红色 (r) 虚线 (--),并使用圆圈 (o) 作为标记。您可以在线条设定的文档中了解有关可用符号的详细信息。

请注意,每个绘图命令都创建了一个单独的绘图。要在一张图上先后绘制两条线,请使用 hold on 命令保留之前的绘图,然后添加另一条线。

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

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

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

plot(y,“LineWidth”,5) 后面的数字是线的宽度。

以上命令将绘制一条粗线。您可以在线条属性文档中了解更多可用属性的详细信息。

MATLAB Plot Gallery - MATLAB & Simulink (mathworks.cn)

添加注释

title(“Plot Title”) 添加标题。

ylabel(“Mass (g)”) 坐标轴的说明。

legend(“Exp A”,“Exp B”) 就是左上角的东西

Snipaste_2024-07-26_17-15-42.png

Snipaste_2024-07-26_17-15-45.png

可以拼接字符串。

Snipaste_2024-07-26_17-17-23.png

Snipaste_2024-07-26_17-17-27.png

实践

usage 有什么用?

size 返回的是两个值。

Snipaste_2024-07-26_19-15-14.png

我这里只用一个值去接 size 返回的值,爆出来上面的错误。

可以使用 fft 函数来计算向量的离散傅里叶变换。

fft(y)

f 将包含从 0fs 的频率。主频位于 f 的开头位置。您可以使用 xlim 函数放大所关注的区域。

xlim () 里面放个数组,(min,max)当然数组使用方括号包裹的。

这个限制的是 x 轴的范围。

Snipaste_2024-07-26_19-24-57.png

Snipaste_2024-07-26_19-24-59.png

将鼠标移到图上是有工具显示的。

Snipaste_2024-07-26_19-28-28.png

Snipaste_2024-07-26_19-29-09.png

可以点击更新代码。

Snipaste_2024-07-26_19-29-14.png

导入数据

一个表有列有行,列有列名,我们可以通过表名. 列名获得一列的数据。

我们也可以点一个不存在的列命,这就是创建了一列。

关系运算符

相等或不相等比较的结果为 1 (true) 或 0 (false)。返回的是数值。

可以使用关系运算符将某个向量或矩阵与单个标量值进行比较。结果是与原始数组相同大小的逻辑数组。

可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true 的数组元素。

创建一个名为 `v` 的变量,其中包含 `v1` 中所有小于 4 的元素。
v = v1(v1 < 4)

还有别的符号

Snipaste_2024-07-26_19-42-33.png

matlab">sampleres = sample(sample < 20 & sample > 10)

Snipaste_2024-07-26_19-44-21.png

分支

跟 python 一样。

不过 if 后面要匹配个 end

for 循环跟 foreach 一样。

最后也是要匹配个 end

如果您要对未知长度的向量执行循环,可以改用 length 函数。

恒星运动

min 函数可以带有两个输出,其中第二个输出为最小值的索引。

控件里面可以添加一些小工具。

loglog 跟 plot 差不多

https://lcms-files.mathworks.com/content/file/58a713b5-fa72-4ba7-8cba-7eb17bb7a331/addcontrol.gif?versionId=KtQYyLWOVTryBMRgPTDltGyd4z7daawj

legend(starnames)

legend 可以写一个数组的。

Snipaste_2024-07-26_20-30-31.png


http://www.ppmy.cn/ops/123758.html

相关文章

基于 CSS Grid 的简易拖拉拽 Vue3 组件,从代码到NPM发布(1)- 拖拉拽交互

基于特定的应用场景&#xff0c;需要在页面中以网格的方式&#xff0c;实现目标组件在网格中可以进行拖拉拽、修改大小等交互。本章开始分享如何一步步从代码设计&#xff0c;最后到如何在 NPM 上发布。 请大家动动小手&#xff0c;给我一个免费的 Star 吧~ 大家如果发现了 Bug…

基于深度学习的不遗忘训练

基于深度学习的不遗忘训练&#xff08;也称为抗遗忘训练或持久性学习&#xff09;是针对模型在学习新任务时可能会忘记已学习内容的一种解决方案。该方法旨在使深度学习模型在不断接收新信息的同时&#xff0c;保持对旧知识的记忆。以下是这一领域的主要内容和方法&#xff1a;…

Ansible 工具从入门到使用

1. Ansible概述 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主…

【redis-06】redis的stream流实现消息中间件

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

JavaWeb开发

JavaWeb开发是指使用Java语言及其相关技术来开发Web应用程序的过程。JavaWeb开发通常涉及以下几个关键组成部分&#xff1a; 1.Java Servlet Java Servlet 是一种用于扩展 Web 服务器功能的 Java 类&#xff0c;以生成动态内容。它们是 Java EE (Enterprise Edition) 的一部分…

Leetcode 第 140 场双周赛题解

Leetcode 第 140 场双周赛题解 Leetcode 第 140 场双周赛题解题目1&#xff1a;3300. 替换为数位和以后的最小元素思路代码复杂度分析 题目2&#xff1a;3301. 高度互不相同的最大塔高和思路代码复杂度分析 题目3&#xff1a;3302. 字典序最小的合法序列思路代码复杂度分析 题目…

【工具使用】使用Docsify搭建个人文档网站

检查Node.js安装状态 首先&#xff0c;打开命令提示符&#xff08;CMD&#xff09;&#xff0c;输入以下命令以验证Node.js是否已经安装在您的电脑上&#xff1a; node -v安装Docsify CLI工具 接下来&#xff0c;通过以下命令全局安装Docsify的命令行工具&#xff1a; npm …

【Qt】控件概述(4)—— 输出类控件

输出类控件 1. QLineEdit——单行输入框2. QTextEdit——多行输入框3. QComboBox——下拉框4. QSpinBox——微调框5. QDateEdit && QTimeEdit && QDateTimeEdit6 QDial——旋钮7. QSlider——滑动条 1. QLineEdit——单行输入框 QLineEdit是一个单行的输入框&…