本文主要记录这阵子学习MATLAB的所得,第一次写博客,如有不妥之处,欢迎提出~!
本文学习来源:
- 学院老师上课内容
- b站视频:MATLAB教程_台大郭彦甫(14课)原视频补档
- 博客地址1:bsjsosososo的博客_这么大个圈圈_CSDN博客-MATLAB,白板学习领域博主
- 博客地址2:ncepu_Chen的博客_CSDN博客-JAVA WEB,算法,复习笔记领域博主
一、变量
变量的定义
- 变量不同于C/C++等编程语言,不需要声明,直接使用即可
- 在MATLAB中使用“=”来对变量赋值,被赋值的变量在左边,赋值的数据在右边
变量名的命名规则
- 变量名只能由数字、大小写字母、下划线组成,且不能以数字开头
- 特殊的关键字不适合做变量名
变量 含义 pi 圆周率 Inf 无穷大
intmax 最大整形数 intmin 最小整形数 NaN 非数值类型数 realmax 最大浮点数 realmin 最小浮点数 ans 上一次没有声明变量的输入语句运行结果
i,j 用于表示复数的虚数和实数 eps 浮点相对经度,为2.2204e-16 - 变量名不能覆盖内置函数,如图2,sin(8)代表该变量sin中的第8个字符
sin='I am a variable'; %sin在此处被作为变量使用,sin(8)指的是该字符串的第8个字符 sin(8)
- 清除变量
clear 变量名; %清除某个变量名 clear; %清除所有变量 clc; %清楚command window 显示的所有内容,不清除变量
注意:
- 两个变量在进行赋值时,等号右边的变量需要已经被定义过,才可将其值赋值给另外一个变量
- 在命令窗口输入的正确的变量都会被保存在工作区中,工作区只保存变量最新的值
- 在命令窗口输入一句输入语句不加分号,按回车键会输出该变量的值
- 在命令窗口可以做数学运算
- 变量的大小写是有区别的
二、数据类型
MATLAB的数据类型有logical、char、numeric、cell、struct、functionhandle(@)。
数字变量(numberic variable)的显示格式
style | 解释 | 例子 |
short | 显示小数点后4位 |
3.1416 |
long | double类型显示小数点后15位 float类型显示小数点后7位 |
3.141592653589793 |
shortE | 科学计数法:小数点后保留4位 | 3.1416+00 |
longE | 科学计数法: double类型小数点后保留15位 float类型小数点后保留7位 |
3.141592653589793+00 |
bank | 保留两位小数 (像付款一样,到小数后两位) |
3.14 |
hex | 十六进制 | 400921fb54442d18 |
rat | 比例模式 | 355/113 |
数据类型之间的转换
在MATLAB中,一般默认输入的数据类型都是short型,如果需要转换类型,如下所示:
查看数据类型
在做题过程中,有时候需要查看工作区变量的信息,查看的命令行有who和whos
----练习计算咯-----
此题选1和d
三、数组
在MATLAB中,数组分为向量和矩阵,都用[ ]来表示
向量:行向量 列向量
a=[1 2 3 4]; %行向量
a[1;2;3;4]; %列向量中间用分号隔开,表示换行显示
矩阵
创建矩阵的方法:
- 列举矩阵元素
A=[1 2 3 4]; %生成1*4的矩阵
B=[1,2,3,4]; %生成1*4的矩阵
C=[1;2;3;4]; %生成4*1的矩阵
综:空格和逗号的表示方法一样,分号表示换行,即另起一列
- 冒号方式
x=1:5 %表示生成一个以1作为第一个元素,以5作为最后一个元素,步长为1的矩阵即x=[1,2,3,4,5]
x=2:2:10 %表示生成一个以1作为第一个元素,以10最后最后一个元素,步长为2的矩阵,即y=[2,4,6,8,10];
- 函数方式
函数名 | 意义 |
x=rand(m,n) | 随机生成m行n列的矩阵 |
x=ones(m,n) | 生成m行n列且值为1的矩阵 |
x=zeros(m,n) |
生成m行n列的矩阵 |
x=eyes(3) | 生成3行3列且对角线值为1的矩阵 |
x=diag(X)其中X为1行n列 | 生成主对角线是矩阵X值的矩阵 |
访问矩阵元素的方法:
- 以列为单位
- 以在矩阵中的位置为准
操作矩阵的函数:
函数 | 说明 | 备注 |
max(A) | 求出矩阵A中每一列的最大值 结果为1行n列的矩阵 |
max默认求列 求行加参数为2 |
max(max(A)) | 求出矩阵A的最大值 | |
min(A) | 求出矩阵A中每一列的最小值 结果为1行n列的矩阵 |
min默认求列 求行加参数为2 |
min(min(A)) | 求出矩阵A的最小值 | |
mean(A) | 求出矩阵A中每一列的平均值 结果为1行n列的矩阵 |
mean默认求列 求行加参数为2 |
mean(mean(A) | 求出矩阵A的平均值 |
|
sort(A) | 按列从小到大排序 | sort默认生升序,降序用descend |
sortrows(A) | 按行从小到大排序 | |
size(A) | 返回矩阵的行数和列数 | |
length(A) | 返回维度最大的值 | |
find(A==5) | 获取矩阵A==5的索引 |
操作矩阵的运算符
运算符 | 操作 | 形式 | 例子 |
+ | 矩阵与向量相加 |
A+b | [1 3]+2=[3 5] |
- | 矩阵与向量相减 | A-b | [5 8]-2=[3 6] |
+ | 矩阵与矩阵相加 相当于".+" |
A+B | [6 2]+[4 2]=[10 4] |
- | 矩阵与矩阵相减 相当于".-" |
A-B | [6 2]-[3 1]=[3 1] |
* | 矩阵与矩阵相乘 | A*B | [6 3]*[4 8]'=48 |
.* | 矩阵与矩阵对象位置相乘 | A.*B | [6 3].*[4 8]'=[24 24] |
/ | 矩阵与矩阵右除 | A/B | 等价于x*B=A或者A*B(逆) |
\ | 矩阵与矩阵左除 | A\B | 等价于A*x=B或者A(逆)*B |
./ | 矩阵与矩阵对应位置右除 | A./B | [6 3] ./ [4 8] = [1.5 0.375] |
.\ | 矩阵与矩阵对应位置左除 | A.\B | [6 3] .\ [4 8] = [0.6667 2.6667] |
^ | 矩阵与向量乘方 | A^b | [1 2;3 4]^3=[37 54; 81 118] |
.^ | 矩阵与矩阵对应位置乘方 | A.^B | [1 2; 3 4].^[1 2; 3 4] = [1 4; 27 256] |
矩阵的右除和左除,参考博客:MATLAB 之 \(左除) /(右除)_clam_clam的专栏-CSDN博客_matlab 左除