当前位置:   article > 正文

matlab入门——矩阵(运算、编辑、高维矩阵、对角矩阵)_matlab高维矩阵

matlab高维矩阵

matlab基础知识——矩阵(运算、高维矩阵、对角矩阵、矩阵编辑抽取)

原创不易,路过的各位大佬请点个赞

1.矩阵定义

MATLAB以矩阵做为数据操作的基本单元,因此matlab又被称之为举证实验室或大型计算器。Matlab计算矩阵非常便捷、方便、高效。
在matlab创建矩阵时基本语法:

1. 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。
2. 矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或回车键分隔。
3. 矩阵大小不需要预先定义。
4. 矩阵元素可以是运算表达式。
5. 若“[]”中无元素,表示空矩阵。
6. 如果不想显示中间结果,可以用“;”结束。

a=[15 15 15;15 15 15;15 15 15]
 
a =
    15    15    15
    15    15    15
    15    15    15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
A=[]A=[a,a*2,a*10]

A =
    15    15    15    30    30    30   150   150   150
    15    15    15    30    30    30   150   150   150
    15    15    15    30    30    30   150   150   150
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、矩阵的生成

  1. 直接像上面写一个矩阵
A=[1,2,3;4,5,6;7,8,9]
  • 1
  1. 读取工作区中的矩阵
A
A =
     1     2     3
     4     5     6
     7     8     9
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 读取事先保存的矩阵
%事先在txt文件中存储1,2,3;3,4,5;5,6,7
load A.txt
  • 1
  • 2
A=[1,2,3;3,4,5;5,6,7];
save A.mat
load A.mat
  • 1
  • 2
  • 3

3、创建特殊矩阵

在这里插入图片描述

 zeros(3,4)
ans =

     0     0     0     0
     0     0     0     0
     0     0     0     0

>> eye(3)
ans =

     1     0     0
     0     1     0
     0     0     1

>> ones(1,3)
ans =

     1     1     1

>> magic(3)
ans =

     8     1     6
     3     5     7
     4     9     2

>> rand(2,4)
ans =

    0.8147    0.1270    0.6324    0.2785
    0.9058    0.9134    0.0975    0.5469
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

4、创建高维矩阵

4.1创建三维矩阵

矩阵的:号表示该维的所有元素;比如*B(:,:)表示矩阵B的所有行和列
矩阵的:号表示该维的所有元素;比如*B(:,1)表示矩阵B的第一列的所有元素
矩阵的:号表示该维的所有元素;比如*B(1,:)表示矩阵B的第一行的所有元素

>> B(:,:,1)=[1,2;1,2];
>> B(:,:,2)=[3,4;3,4];
>> B(:,:,3)=[5,6;7,8];
>> B
ans
B(:,:,1) =
     1     2
     1     2
B(:,:,2) =
     3     4
     3     4
B(:,:,3) =

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

4.2创建多维维矩阵

%Li表示第i维的维数
L1=2;
L2=4;
L3=2;
L4=2;

%生成L1 x L2 x L3 x L4的4维矩阵
for i4=1:L4
    for i3=1:L3
        for i2=1:L2
            for i1=1:L1
                CC(i1,i2,i3,i4)=i3*i4;
            end
        end
    end
end

ans
>> CC
CC(:,:,1,1) =

     1     1     1     1
     1     1     1     1
CC(:,:,2,1) =

     2     2     2     2
     2     2     2     2
CC(:,:,1,2) =
     2     2     2     2
     2     2     2     2
CC(:,:,2,2) =

     4     4     4     4
     4     4     4     4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

4.3创建多维特殊矩阵

ones(2,3,4)

rand(3,4,5,6)

randn(4,5,6,1)

 A=[1,2,3;3,4,5;5,6,7];
 B(:,:,1)=A;
 B(:,:,2)=A*2;
 B(:,:,3)=A*3;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5、创建对角矩阵\分块对角矩阵

对角矩阵语法:diag( )
分块对角矩阵: blkdiag(A,B,C)

A=diag([1,2,3,4,5,6])
A =
     1     0     0     0     0     0
     0     2     0     0     0     0
     0     0     3     0     0     0
     0     0     0     4     0     0
     0     0     0     0     5     0
     0     0     0     0     0     6

B=diag(ones(1,5))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

分块对角矩阵

>> A=[1,2,3;4,5,6;6,7,8];
>> B=[1,2;3,4];
>> C=[11,22;33,44];
>> blkdiag(A,B,C)

ans =

     1     2     3     0     0     0     0
     4     5     6     0     0     0     0
     6     7     8     0     0     0     0
     0     0     0     1     2     0     0
     0     0     0     3     4     0     0
     0     0     0     0     0    11    22
     0     0     0     0     0    33    44
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

6、矩阵元素的运算

矩阵创建起来,第一个面临的任务就是修改编辑其元素
在这里插入图片描述

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

>> A(1,:)=[]
A =
     4     5     6
     7     8     9
>> A(2,:)=[]
A =

     4     5     6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
A=[1,2,3;4,5,6;7,8,9]
>> A(2,2)=100
A =
     1     2     3
     4   100     6
     7     8     9
     
A(2,3)=123456
A =
           1           2           3
           4         100      123456
           7           8           9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

同样高维矩阵也可以修改,修改方法一样,只要在()中标注好修改元素的位置

7、矩阵 变维

矩阵的变维可以用符号“:”法和reshape函数法。reshape函数的调用形式如下。reshape(X,m,n):将已知矩阵变维成m行n列的矩阵。

A=1:12;
B=reshape(A,2,6)
C=zeros(3,4);       			%用“:”法必须先设定修改后矩阵的形状
C(:)=A(:)

B =
     1     3     5     7     9    11
     2     4     6     8    10    12
C =

     1     4     7    10
     2     5     8    11
     3     6     9    12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

8、矩阵 变向

在这里插入图片描述

9、矩阵的抽取、读取

对矩阵元素的抽取主要是指对角元素和上(下)三角阵的抽取。对角矩阵和三角矩阵的抽取命见下
在这里插入图片描述

原创不易,路过的各位大佬请点个赞

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/579336
推荐阅读
相关标签
  

闽ICP备14008679号