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,矩阵快速创建方法

5,矩阵运算模式

矩阵相乘 A*B

矩阵右乘 A/B等价于A*B的逆 注意左除和右除的区别

矩阵左乘 A/B等价于A的逆乘B

矩阵数乘 A.*B

矩阵右除 A./B等价于A除以B 每个元素进行分别操作

矩阵左除 A./B等价于A除B

对于数+/-矩阵,其相当于在矩阵每个元素加减此数

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) 矩阵分析常用

大家可以自己打代码试一下

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,逻辑判定

3,逻辑运算

4,优先级

相关推荐
咕咕吖4 分钟前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎36 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu41 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!1 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚1 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
远望清一色2 小时前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab
为什么这亚子2 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
2 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
~yY…s<#>2 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
幸运超级加倍~3 小时前
软件设计师-上午题-16 算法(4-5分)
笔记·算法