MatLab 基础笔记

MatLab基础

1. 基本用法

1.1 命令行

命令行之后回车会自动执行命令行并输出,在命令行之后加 ; 可以使命令执行但不输出
在这里插入图片描述
% 之后的内容为注释
在这里插入图片描述
clear 清空工作内存
clf 重置当前图形窗口为初始状态
doc <command> 可以查看 command 指令帮助

1.2 赋值

1.2.1 变量赋值表达式

矩阵用类似 [1,2,3;4,5,6] 这样的形式表示
其中 ; 代表行的结尾,,或者 空格(space)代表行中元素的间隔
在这里插入图片描述

1.2.2 文件装载法

在这里插入图片描述
使用 load 可以从外部文件中读入数据
在这里插入图片描述
变量名为 文件名前缀,若有 . 则变为 _,如下图
在这里插入图片描述
还可以这样使用 a = load('文件名'),将文件中的数据读入到变量 a 中。
在这里插入图片描述

1.2.2 文件装载法(补充)

save 语句可以将变量存入文件中。
在这里插入图片描述
此时 test2.txt 中内容如下
在这里插入图片描述
可以看到 #name: a ,先 clear 清空变量,然后 load 该文件可以发现变量并不是 test2,而是 a
在这里插入图片描述

1.2.3 函数赋值法

zeros(r,c) 输出 r×c 的全零矩阵
在这里插入图片描述
ones(r,c) 输出 r×c 的全一矩阵
在这里插入图片描述
eye(r,c) 输出 r×c 的对角为一的矩阵
在这里插入图片描述
diag(x) 有两个作用,1. 将向量变成一个对角矩阵;2. 将矩阵取对角
在这里插入图片描述在这里插入图片描述

1.3 特殊值

eps 机器零阈值
在这里插入图片描述
pi 圆周率
在这里插入图片描述
i,j 虚数
在这里插入图片描述
Inf 无穷大
NaN 不定式表示 0/0∞/∞
ans 预定义缺省输出

1.4 特殊用法

a:bab 的行向量
在这里插入图片描述
a:d:b
a 为首项,d 为公差,b 为上界的行向量
在这里插入图片描述
a(:) 展开矩阵
在这里插入图片描述

1.5 矩阵基本操作

1.5.1 访问数据

A=[1,2,3,4;2,3,4,5;3,4,5,6;4,5,6,7]
在这里插入图片描述
A(2,3) 访问第 2 行第 3 列的数据
在这里插入图片描述
A(3,:) 取出第 3
在这里插入图片描述
A(:,2) 取出第 2
在这里插入图片描述
A(1:2:3,:) 取出第 1,3
在这里插入图片描述
A(2:3,4:-3:1) 取出第 2,3 行与第 4,1 列交叉位置数据
在这里插入图片描述

1.5.2 修改矩阵数据

A(2,2) = 0 将第 2 行第 2 列的数据修改为 0
在这里插入图片描述

1.5.3 删除数据

A(:,4) = [] 删除第 4
在这里插入图片描述

1.5.4 拼接数据

B = [A, ones(4,2)] A 矩阵右边拼接 4×2 的全一矩阵
在这里插入图片描述
C = [A(1:2,:);eye(3)] 在 A 矩阵 1,2 行为基础下面拼接上 3 阶对角为 1 的矩阵
在这里插入图片描述
D = [A(1:2, 2:3),zeros(2);ones(2,4)] 以 A 矩阵第 1,2 行和第 2,3 列为基础右边拼接 2 阶全零矩阵,下面拼接 2×4 的全一矩阵
在这里插入图片描述

2. 基本运算

2.1 基本数学运算

' 共轭转置
+ - * ^ 加减乘幂
\ 左除
/ 右除
A A A 可逆,X = A\B ,则 X = A − 1 B X=A^{-1}B X=A1B
A A A 可逆,X = B/A ,则 X = B A − 1 X=BA^{-1} X=BA1

.' 非共轭转置
当矩阵内元素都是实数时,两种转置无区别
当矩阵内元素有虚数时,共轭转置会在转置的同时把虚部变号,非共轭转置则不会变号
A = [1+1i;2+2*1i;3+3*1i]
在这里插入图片描述
.* .^ 点乘,点幂
点乘和点幂都是对矩阵对应位置的元素之间的运算
A=[1,2,3;0,1,2;0,0,1]
B=[0,0,1;0,2,1;3,2,1]
A.*B 为 A 矩阵与 B 矩阵对应位置的元素乘积的后得到的矩阵(A与B要同型)
在这里插入图片描述
A.*10A*10 结果一致
在这里插入图片描述
.\ 点左除
./ 点右除
B.\55./B 结果相同
在这里插入图片描述

2.2 逻辑用法

== :等于
~= :不等于
= :赋值
& :与
| :或
~ :非

标量也可以和矩阵比较
在这里插入图片描述

3 常用函数

3.1 标量函数

abs() 绝对值
sqrt() 平方根
exp(),pow2()e2 为底的指数
log10,log(),log2()10e2 为底的对数
sign() 符号函数
在这里插入图片描述
gamma() Γ \Gamma Γ函数
在这里插入图片描述
round() 四舍五入取整
ceil() + ∞ +∞ + 取整
floor() − ∞ -∞ 取整
fix() 0 0 0 取整

3.2 向量函数

sum() 求和,对矩阵运算如下
在这里插入图片描述
cumsum(A) 如果 A 是向量,则返回一个向量,向量中第 m 个元素为从第 1 个元素到第 m 个元素的累加和的向量,如果 A 是矩阵,则返回一个矩阵,矩阵中第 m 行第 n 列元素是 A 中第 1 行到第 m 行的所有第 n 列元素的累加和
cumsum(A, dim)A 为矩阵且 dim 为 1 时,结果与 cumsum(A) 一样,若 A 为矩阵且 dim 为 2 时,返回的是沿着第二维(各行)的累加和的矩阵
prod() 累乘
cumprod()cumsum() 用法类似
max() 求最大
min() 求最小
sort() 排序,默认升序
[B,IX]=sort(A) 默认时对列分别从小到大,IX 表示原来的列序号,同 sort(A,1)
[B,IX]=sort(A,2) 对行分别从小到大,IX 表示原来的行序号
[B,IX]=sort(A,'descend') 每列数据降序排序
[B,IX]=sort(A,2,'descend') 每行数据降序排序
length() 求向量维度,或者求矩阵列向量长度

3.3 矩阵函数

reshape()
fliplr() 左右翻转
flipud() 上下翻转
rot90() 逆时针旋转90°
tril() 取下三角
triu() 取上三角
size() 矩阵维数
在这里插入图片描述
det() 矩阵变行列式
rank() 求矩阵的秩
norm() 求矩阵范数
inv() 求矩阵逆
pinv() 求广义矩阵逆
eig() 求矩阵特征值以及特征向量
eigs() 求矩阵某些特定的(如最大)特征值以及对应的特征向量

3. 图形化

3.0 线与点

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

3.1 pie 饼状图

pie() 绘制饼状图
在这里插入图片描述

在这里插入图片描述
突出表示
在这里插入图片描述
pie3() 绘制三维饼状图

3.2 bar 条形图

bar() 绘制条形图
bar3() 绘制三维条形图
barh() 绘制水平条形图
barh3() 绘制水平三维条形图

clear %清空工作内存 
clf %重置当前图形窗口为初始状态 
y1 = [15,35,10,20,20];
y2 = [15,35,10;20,20,15;10,15,30];
subplot(2,2,1)
bar(y1,'c') %简单条形图 
subplot(2,2,2)
bar(y2,'grouped') %垂直放置的分组式条形图 
subplot(2,2,3)
barh(y2,'stacked') %水平放置的累加式条形图 
subplot(2,2,4)
bar3(y2,'grouped') %垂直放置的三维立体条形图

在这里插入图片描述

3.3 plot*

plot() 绘图
plot3() 绘制三维图
subplot(m,n,p) 多窗口绘图,m×n 个子图,当前绘制第 p 个

clear,clf
x=0:0.5:5; y=exp(x);%创建指数函数数据 
z=0:pi/50:2*pi; F=[sin(z);cos(z);sin(2*z)];%创建三组三角函数数据
subplot(3,1,1)
plot(x,y,'s-.m')%用洋红色正方形绘制指数函数数据点,并用点划线连接数据点
subplot(3,1,2)
plot(z,F(1,:),z,F(2,:),'sg',z,F(3,:),'.c') %绘制由矩阵 F 定义的三组
subplot(3,1,3)
plot(z,F) %绘制由矩阵 F 定义的三组三角函数的图形,系统自动处理

在这里插入图片描述

3.4 设置标记图例注释

title('str') 标题
xlable(),ylable() 横纵坐标意义
legend() 图例
text() 注释

clear
clf
x=0:pi/50:2*pi;
Y=[sin(x);sin(2*x);cos(x)];
plot(x,Y)
title('\fontsize{18}三角函数图像') 
xlabel('\fontsize{12}弧度值') 
ylabel('\fontsize{16}函数值') 
legend('sin(x)','sin(2x)','cos(x)')
set(legend,'Location','NorthEastOutside') % 将图例放在外面
text(0.8,0.71,'\fontsize{12}←sin(x)和 cos(x)在 π/4 的交点') 

在这里插入图片描述

4. 运算流程控制和指令集的函数化

4.1 运算流程控制

4.1.1 for-end
for i = a:d:b
	<commands>
end

i 为循环变量
a 为首项
d 为步长
b 为循环终止值

4.1.2 if-end
if <expression>
	<commands>
end
if <expression-1>
	<commands-1>
elseif <expression-2>
	<commands-2>
else 
	<commands-3>
end
4.1.3 while-end
while expression
    statements
end
4.1.4 switch-end
switch switch_expression
   case case_expression
      statements
   case case_expression
      statements
    ...
   otherwise
      statements
end

4.2 m-script 文件

脚本文件

4.3 m-function文件

function [y1,...,yN] = myfun(x1,...,xM)
	statements
end

编写规范
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇咔咔负负得正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值