MATLAB学习笔记三——矩阵的构造、下标与四则运算

矩阵的构造

有这么几种方法,直接[ ]法是最简单的

S=[1 3 4 5 6]

其他方法如下代码所示

根据最大最小值步长所构造一个1行N列矩阵:

A=1:2:9 %1作为最小值,9作为最大值,中间2是步长,创建一个1行N列矩阵
%最小值+2=3,3+2=5,5+2=7,7+2=最大值
B=1:3:9 %最小值+3=4,再+3=7,再+3=10但超出最大值,所以不列为矩阵内得数

结果为

A =

     1     3     5     7     9


B =

     1     4     7

将某矩阵看作一个整体,进行拓展整体行列的方法构造新矩阵:

C=repmat(B,3,1) %rempat函数意思是将B矩阵看作一个整体,构造一个3行1列的B矩阵整体
D=repmat(A,2,2) %构造一个2行2列的A矩阵整体

结果为

C =

     1     4     7
     1     4     7
     1     4     7


D =

     1     3     5     7     9     1     3     5     7     9
     1     3     5     7     9     1     3     5     7     9

构造一个全1矩阵:

E=ones(3,2) %构造一个3行2列的全1矩阵(ones函数用法)

结果为

E =

     1     1
     1     1
     1     1

矩阵四则运算

这个很好理解,学过线性代数都知道。
废话不多说,看代码

A=[1 2 5 3;1 3 5 2]
B=[2 3 4 2;3 2 4 1]
  • 矩阵相加
C=A + B %A矩阵与B矩阵对应项相加得到一个还是2行4列的矩阵

结果为

C =

     3     5     9     5
     4     5     9     3
  • 矩阵相减
D=A - B %A矩阵与B矩阵对应项相减得到一个还是2行4列的矩阵

结果为

D =

    -1    -1     1     1
    -2     1     1     1
  • 矩阵对应相乘
F=A .* B %A矩阵与B矩阵对应项相乘得到一个还是2行4列的矩阵

结果为

F =

     2     6    20     6
     3     6    20     2
  • 矩阵对应相除
H=A ./ B %A矩阵与B矩阵对应项相除得到一个还是2行4列的矩阵

结果为

H =

    0.5000    0.6667    1.2500    1.5000
    0.3333    1.5000    1.2500    2.0000
  • 矩阵相乘转置矩阵
E=A * B' %A矩阵*B的转置矩阵,可得一个2行2列的矩阵,矩阵乘法参考线性代数

结果为

E =

    34    30
    35    31
  • 矩阵普通相除
G=A / B %A矩阵与B矩阵相除就是A矩阵*B的逆矩阵,也就是A*inv(B)

结果为

G =

    1.3333   -0.3333
    1.3333   -0.3000

注意事项

  1. 构造的矩阵A的列数等于矩阵B的行数时,A与B可以相乘。
  2. 矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。(C=AB)
  3. 乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

百度百科·矩阵乘法
https://baike.baidu.com/item/%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95/5446029

矩阵下标

一般是根据下标查找矩阵的值或者根据值查找矩阵的下标或者查找矩阵某行/列所有值
看代码

A=magic(4) %生成一个4阶幻方矩阵

结果为

A =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
  • 根据矩阵下标取得矩阵的值构造一个1x1矩阵
B=A(3,4) %B矩阵是A矩阵第3行第4列的值构造出来的1x1矩阵
%3,4是A矩阵下标

结果为

B =

    12

注意工作区:
在这里插入图片描述

  • 查找矩阵的某一行
C=A(2,:) %C矩阵是第2行的所有值构造出来的1行4列矩阵
%“:”是代表取全部

结果为

C =

     5    11    10     8
  • 查找矩阵的的某一列
D=A(:,1) %D矩阵是第1列的所有值构造出来的4行1列矩阵

结果为

D =

    16
     5
     9
     4

注意工作区:
在这里插入图片描述
A B C D都是MXN的double型

  • find函数用法
[m,n]=find(A > 10) %m,n代表矩阵下标,find函数用法查百度。
%意思是找A矩阵中的大于10的值的下标序号,就是其所在的m行n列。

%% 练习
S=[10 3 5 7 24]
[q,w]=find(S>5)
%[q,w]=find(5) %这个意思是找到S矩阵中值为5的所在位置下标

结果为:

m =

     1
     2
     4
     4
     1
     3


n =

     1
     2
     2
     3
     4
     4


S =

    10     3     5     7    24


q =

     1     1     1


w =

     1     4     5

矩阵算是搞完了,还是比较难的,掌握了就好。

你可能感兴趣的:(MATLAB,matlab,矩阵,学习,线性代数)