Tangwx

Tangwx

博客网站

MATLAB期末复习

MATLAB 期末复习#

1 矩阵的输入方式#

>>a=[1 2 3;4 5 6; 7 8 9]
>>a=[1,2,3;4,5,6; 7,8,9]
>>a=[1:3;4:6;7:9]
>> a=[1 2 3
4 5 6
7 8 9]

a =

     1     2     3
     4     5     6
     7     8     9
>>

2 矩阵相乘#

A * B
A(m x n) B(p x q) 当n=p时才可以相乘 线代中的矩阵相乘
A .* B
大小完全一致,对应元素相乘

3 矩阵转置#

实数矩阵转置#

A'

>> A = [1 2 3; 4 5 6; 7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9

>> A'

ans =

     1     4     7
     2     5     8
     3     6     9

复数矩阵转置#

A' 共轭转置

A.'非共轭转置

>> A = [1+i 2+i 3+i; 4+i 5+i 6+i; 7+i 8+i 9+i]
A =
   1.0000 + 1.0000i   2.0000 + 1.0000i   3.0000 + 1.0000i
   4.0000 + 1.0000i   5.0000 + 1.0000i   6.0000 + 1.0000i
   7.0000 + 1.0000i   8.0000 + 1.0000i   9.0000 + 1.0000i

>> A'
ans =
   1.0000 - 1.0000i   4.0000 - 1.0000i   7.0000 - 1.0000i
   2.0000 - 1.0000i   5.0000 - 1.0000i   8.0000 - 1.0000i
   3.0000 - 1.0000i   6.0000 - 1.0000i   9.0000 - 1.0000i

>> A.'
ans =
   1.0000 + 1.0000i   4.0000 + 1.0000i   7.0000 + 1.0000i
   2.0000 + 1.0000i   5.0000 + 1.0000i   8.0000 + 1.0000i
   3.0000 + 1.0000i   6.0000 + 1.0000i   9.0000 + 1.0000i

4 随机分布#

均匀分布#

>> rand(5)  产生服从[0,1]之间的均匀分布

ans =

    0.8869    0.0768    0.3996    0.6761    0.7636
    0.0021    0.7990    0.6387    0.1379    0.8417
    0.7377    0.4168    0.6586    0.1675    0.7409
    0.4085    0.2020    0.3824    0.3339    0.2610
    0.5768    0.7958    0.4104    0.1429    0.9621

正态分布#

>> randn(5)  产生服从N[0,1]的标准正态分布

ans =

   -0.3534   -2.1492    0.2811   -0.2420    0.1620
   -0.5709   -0.5303    1.1760    0.5279   -0.0394
    0.8749    0.2686    0.8725    0.5440    0.2960
   -1.0153    0.2161   -0.9298    1.5400   -1.1293
    0.7904    0.7901   -0.1329   -0.5585   -1.0672
    
均值为3 方差为9的正态分布
x~N(μ,σ²)
ax+b~N(aμ+b,(aσ)²)
aμ+b = 均值
(aσ)² = 方差
a*randn(p,q)+b
p,q 矩阵的大小为p*q

>> 3*randn(2,3)+3

ans =

    6.5279    5.1196    4.8656
    5.5406   -0.0497    5.2151

5 行列式#

det()

6 矩阵的逆#

inv方阵且非奇异

pinv()奇异 求出来是伪逆

7 矩阵的存储方式#

矩阵是按列存储的

8 矩阵求和#

矩阵求和也是按列求和的

>> A = [1 2 3; 4 5 6; 7 8 9]
A =
     1     2     3
     4     5     6
     7     8     9

>> sum(A)
ans =
    12    15    18

9 矩阵的缩小#

>> a = [1:4;5:8;9:12;13:16]

a =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

>> b = a(2:3,3:4)  前面2:3为2行和3行 后面3:4为3列4列

b =

     7     8
    11    12

删除行或列

a =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

>> a(2,:)=[] 删除行

a =

     1     2     3     4
     9    10    11    12
    13    14    15    16

>> a(:,2)=[] 删除列

a =

     1     3     4
     9    11    12
    13    15    16

10 与或非运算#

注意非零即为1,后进行与或非逻辑运算

11 使用diag函数生成矩阵#

例题:利用diag等函数产生下列矩阵:
a = [0 0 8; 0 -7 5; 2 3 0]
b = [2 0 4; 0 5 0; 7 0 8]
然后利用reshape函数将它们变换成行向量

用到的函数

用到的函数:
d=diag(A),若A是一个矩阵,则d为取A对角线元素组成的一个向量,如果A为一个向量,则d是一个以向量A为对角线上的元素构成的对角矩阵

B = fliplr(A),将矩阵A的列绕垂直轴进行左右翻转 
如果A是一个行向量,fliplr(A)将A中元素的顺序进行翻转。 
如果A是一个列向量,fliplr(A)还等于A。 
filpup() 将矩阵上下翻转

B = reshape(A,...,[],...),指定某维数后,剩余的维数长度值用占位符[]来表示,使得维数的乘积等于prod(size(A))。


>> A=diag([8 -7 2])				%产生矩阵。元素位于对角线

A =

     8     0     0
     0    -7     0
     0     0     2

>> B=A+diag([5 3],-1)				%产生次对角线矩阵并与A相加

B =

     8     0     0
     5    -7     0
     0     3     2

>> a=fliplr(B)						%矩阵翻转

a =

     0     0     8
     0    -7     5
     2     3     0
     
>> A=reshape(a,1,9)				%矩阵排成行向量,`a.'对a转置,1 指定一行,9指定元素9个

A =

     0     0     2     0    -7     3     8     5     0
     
     
     
>> q = diag([2 0 8]) % 主对角线元素

q =

     2     0     0
     0     0     0
     0     0     8

>> r = diag([4 5 7]) % 副对角线元素

r =

     4     0     0
     0     5     0
     0     0     7

>> w = fliplr(r) % 将副对角线元素左右镜像翻转

w =

     0     0     4
     0     5     0
     7     0     0

>> b = q+w % 将两个矩阵相加

b =

     2     0     4
     0     5     0
     7     0     8

>> B=reshape(b.',1,[]) % 转换成行向量

B =

     2     0     4     0     5     0     7     0     8     

12 变量命名要求#

在 matlab 中变量名只能由数字字母下划线组成,且必须字母开头。matlab 中变量也是大小写敏感的。

13 .m 文件#

.m 文件可分为脚本文件和函数文件,脚本文件和函数文件需在同一文件夹下才能相互调用

脚本文件#

函数文件#

函数文件格式

function [] = 函数名()

end

14 曲线绘制#

plot#

plot(x,y)

plot(x1,y1,'op1',x2,y2,'op2',...,xn,yn)绘制平面图形

y1=2x+1
x = 1:0.1:10
y1 = 2.*x+1
y2=...
plot(x1,y1,...,x2,y2,...)

op 线型 颜色 点型

线型
- 实
: 虚
-. 点划线
-- 划线

+
*
.

x
s
d 菱形
v
^
<
>
P 五角形
h 六角形
颜色
r	红
g	绿
b	蓝
k	黑
y	黄
w	白
m	锰紫色
c	亮青色

plot3#

pot3 (x1,y1,z1,'op1',x2,y2,z2,'op2',...,xn,yn,zn,'opn') 绘制空间图形

fplot#

fplot ('fun',[a,b]) % 绘制函数 fun 在 [a,b] 的图形

fplot(@(x) 2*exp(-0.5*x)*sin(2*pi*x),[0,2*pi],'gd-')

15 曲面绘制#

生成平面网格#

meshgrid(x,y)

x = a:步长:b;
y = c:步长:d;

[x,y] = meshgrid(x,y);

x = [1 2 3 4]
y = [2 4 6]
[x y] = meshgrid(x,y);

绘制网格曲线#

mesh(x,y,z)

绘制填充型曲面#

surf(x,y,z)

绘制平面等高线#

contour(x,y,z)

绘制三维等高线#

contour3(x,y,z)

显示多个图形#

subplot(格子列,格子行,第几个)
subplot(2,2,3)%一个2列2行的格子,在第3个位置第二行第一列显示

添加标题#

title ("标题")

添加 X 轴标签#

xlabel ("x 轴标签")

添加 Y 轴标签#

ylabel ("y 轴标签")

调整刻度范围#

axis(Xmin,Xmax,Ymin,Ymax)

阵列预分配#

y=zeros(size(x))

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。