MATLAB的使用(一)

一,MATLAB的编程特点

a,语法高度简化;

b,脚本式解释型语言;

c,针对矩阵的高性能运算;

d,丰富的函数工具箱支持;

e,通过matlab本体构建跨平台;

二,MATLAB的界面

工具栏:提供快捷操作编辑器:

脚本代码窗口工作区:

脚本变量窗口工作路径:

当前文件运行的检索路径

三,MATLAB的工具栏

新建脚本 :新建脚本或函数**(*.m)**文件

新建实时脚本: 新建可交互脚本**(*.mlx)**文件

新建/打卡:支持更加泛化的新建/打开文件类型导入数据:加载可识别的数据文件

保存工作区 :将工作区的文件保存至(*.mat)文件

**Simulink:**打开可视化仿真工具

**预设:**MATLAB相关参数设置

**帮助:**查询相关文档和示例

四,常用控制代码

4.1 clc:清空命令行

4.2 clear:清空工作区变量

4.3 clear all:清空工作区(在一般matlab使用中等价于clear)

4.4 close:关闭当前图像窗口

4.5 *dbstop if error:建立变量缓冲区,在错误位置自动断点调试

编译器会报错,在错误的地方停止运行

4.6 Crtl + R/crtl + T:注释和反注释(支持批量)

4.7 ctrl + C: 强制停止

4.8 crtl + R:智能缩进

4.9 F9:在命令行中运行编译器内代码

五,MATLAB运算

命令行==计算器?

1,加+ 减- 乘* 除 /

2,平方根 sqrt(),任意次幂()^();power(,)

4,对数 log();log10();log2(); log1p()

5,指数exp();expm1();pow2();nextpow2()

6,三角函数 sin( );cos(); sinpi( );cospi();tan( )

7,反三角函数 asin( );acos( );asind();acosd( );atan( );atand( ); atan2()

六,MATLAB整体运算

1 模与余数 mod(,)rem(,)

2,符号函数sign()

3,matlab小数计算

4,matlab整体运算

5,生成随机数

七,矩阵

1,矩阵的重要性

矩阵是MATLAB的核心

MATLAB通过建立特定平台进行大量的硬件针对性优化

2,创建向量

特殊的矩阵形式:向量。

生成格式:

①起始数据:数据间隔(可忽略,默认为1):结束数据

示例:

1:100(等价于1:1:100) 范围为1到100,间隔为1,1*100的向量

1:2:100 范围为1到100,间隔为2,1*50的向量

100:-1:1 范围为1到100,间隔为-1,1*100的向量

1:1:100.7 范围为1到100(<=100.7的最大整数),间隔为1,1*100的向量

②特殊异常模式(三冒号表达式)A:B:C:D

>>1:2:4:5 >>2:-1:3:5

ans = ans =

1 2 3 4 5 空的 1*0 的double行向量

无用形式,但不会报错

3,赋值方法

**[3.4] 创建了值为3.4的1乘1矩阵(标量)

1.0,2.0,3.0\] 创建了值为\[1 2 3\]的1乘3矩阵(行向量) \[1.0 2.0 3.0\] 创建了值为\[1 2 3\]的1乘3矩阵(行向量) \[1.0; 2.0; 3.0\] 创建了值为\[1 2 3\]\^T的3乘1矩阵(列向量) \[1,2, 3; 4, 5, 6\] 创建了值为2\*3的矩阵 \[1,2,3** **4, 5,6\] 创建了值为2\*3的矩阵** 采用**逗号或空格**来分割行元素 采用**分号或换行**来分割列元素 ### 4,矩阵快速创建方法 ![](https://file.jishuzhan.net/article/1771643956652675074/f1cd81dd32868f3fc5261afcae51e3da.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/38c678527208cc5635f19edeb3775de1.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/0badd9546cdebd9c86238892206d5bd0.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/51aee107787368583d4bc2b9d6ad3f24.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/2bfb85a9ff8abf88829b4c9e37f0fa2c.webp)![](https://file.jishuzhan.net/article/1771643956652675074/d18695bed3d920e87ef96bbf01071c66.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/7fffc955d56e3b4c283feb49a84b6914.webp)![](https://file.jishuzhan.net/article/1771643956652675074/4b39a05e50511ee3ed159301d64743cd.webp) ### 5,矩阵运算模式 **矩阵相乘 A\*B** **矩阵右乘 A/B等价于A\*B的逆 注意左除和右除的区别** **矩阵左乘 A/B等价于A的逆乘B** **矩阵数乘 A.\*B** **矩阵右除 A./B等价于A除以B 每个元素进行分别操作** **矩阵左除 A./B等价于A除B** **对于数+/-矩阵,其相当于在矩阵每个元素加减此数** ![](https://file.jishuzhan.net/article/1771643956652675074/b321823ffd1b6f6ac4961056a177bae7.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/730302db1d22a927b1acde9baccb65c8.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/3247b3e6ddc00a8f11e5999dcd6b90b2.webp) ![](https://file.jishuzhan.net/article/1771643956652675074/464d7f7fc0a8aa7d52120481f70ad04e.webp) ### ![](https://file.jishuzhan.net/article/1771643956652675074/eb4acc846f97b51cc12f3aa3df0180bb.webp) 6,其他运算方法 **矩阵A求逆 inv(A)** **矩阵A求伪逆 pinv(A) 适用于非方阵和奇异阵** **矩阵A求转置 A'** **求行列式A det(A)** **求行列式A的迹 trace(A)** **求矩阵A的LU分解 lu(A)** **求矩阵A的QR分解 qr(A)** **求矩阵A的特征值与向量 eig(A) 矩阵分析常用** ![](https://file.jishuzhan.net/article/1771643956652675074/02a103c244f89cc6cc07790a3f3a13a9.webp) 大家可以自己打代码试一下 ### 7,矩阵数据的提取 **确定矩阵的大小 length()-用于向量 size()-用于矩阵** 元素提取: A(m,n)表示提取矩阵的第m,n位置处的值 注意m,n不能超出矩阵维度,**matlab中起始值为1** **冒号/end提取法: A( :1) 提取矩阵第一列 A(1,: ) 提取矩阵第一行 A(1,end) 提取矩阵第一行中最后一个值 A(2:2:end,:) 提取偶数行** ### **8,矩阵操作** -更改矩阵的大小: **Matrix_out = reshape( Matrix_in , m , n)** **m/n为新矩阵的行数和列数** **注意在矩阵改变的同时不能改变元素个数** **-复制扩充:** **Matrix out = repmat( Matrix_in , m , n)** **m/n为扩充的行倍数和列倍数** ### 9,交叉知识-稀疏矩阵 **采用\[(m,n),value\]三元组来存储数据,不存储0值以节省空间** 直接生成稀疏矩阵:sparse(m,n) 将矩阵A强制转化为稀疏矩阵:sparse(A) \>\>one(1e5) 错误使用 ones **请求的100000\*100000(74.5GB)数组超过预设的最大数值大小** **\>\>sparse(1e5,1e5)** **ans=** **全零稀疏矩阵:100000\*100000** 节省存储空间,对于严重稀疏矩阵加快运算速度 ## 八,逻辑 ### 1,逻辑变量 Logical类型:true(真值),false(假值) \>\>a = true a = logical 1 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \>\>b=false b= logical 0 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \>\>a = true + 1.1 a = 2.1000 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 逻辑变量可参与运算,参与运算时其默认值为1/0 \>\>logical(-0.5) ans= logical 1 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \>\>logical(2) ans= logical 2 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* **逻辑类型的强制中,所有非0值(包括字符串)都会转化为真值** ### 2,逻辑判定 ![](https://file.jishuzhan.net/article/1771643956652675074/601a07b0bd0b6a2c7c8d47b33b773512.webp) ### 3,逻辑运算 ![](https://file.jishuzhan.net/article/1771643956652675074/22a0ff56147553ccb0a432cbfc9e3c6c.webp) ### 4,优先级 ![](https://file.jishuzhan.net/article/1771643956652675074/34ace9a78f586cc98c617f5d1a2444fc.webp)

相关推荐
码破苍穹ovo1 小时前
堆----1.数组中的第K个最大元素
java·数据结构·算法·排序算法
愤怒的小鸟~~~1 小时前
c语言创建的一个队列结构(含有这个头指针和这个尾指针的结构具有一定的参考价值)
c语言·开发语言·算法
Joker-01113 小时前
深入 Go 底层原理(十二):map 的实现与哈希冲突
算法·go·哈希算法·map
金融小师妹4 小时前
AI量化模型解析黄金3300关口博弈:市场聚焦“非农数据”的GRU-RNN混合架构推演
大数据·人工智能·算法
金融小师妹4 小时前
基于LSTM-GRU混合网络的动态解析:美联储维稳政策与黄金单日跌1.5%的非线性关联
大数据·人工智能·算法
白日梦想家-K4 小时前
题单【模拟与高精度】
开发语言·c++·算法
重生之我是Java开发战士5 小时前
【C语言】内存函数与数据在内存中的存储
c语言·开发语言·算法
roman_日积跬步-终至千里6 小时前
【机器学习】“回归“算法模型的三个评估指标:MAE(衡量预测准确性)、MSE(放大大误差)、R²(说明模型解释能力)
算法·机器学习·回归
小指纹7 小时前
图论-最短路Dijkstra算法
数据结构·c++·算法·深度优先·图论
民乐团扒谱机8 小时前
【微实验】弦振动 MATLAB 物理模型 动画仿真
matlab·动画·仿真·信号·声学·振动·