MATLAB矩阵

创建矩阵

基于帕斯卡三角形的项创建一个对称矩阵

A = pascal(3)

创建一个非对称幻方矩阵,它的行总和与列总和相等

B = magic(3)

由随机整数构成的 3×2 矩形矩阵:在这种情况下,randi 的第一个输入描述整数可能值的范围,后面两个输入描述行和列的数量。

C = randi(10,3,2)

自定义矩阵,使用中括号包起来,以逗号(,)或空格 隔开定义行,以分号(;)隔开定义列

u = [3; 1; 4]

v = [2 0 -1]

h=[5:10;10:15]

矩阵的运算

矩阵的加法和减法

矩阵和数组的加减法是逐个元素执行的,或者说是按元素执行的。

例如,A 加 B 之后再减去 A 又可以得到 B

X = A + B
X =
       9     2     7
       4     7    10
       5    12     8
Y = X - A
Y =
       8     1     6
       3     5     7
       4     9     2

向量乘积和转置

长度相同的行向量和列向量可以按任一顺序相乘。其结果是一个标量(称为内积)或一个矩阵(称为外积):

u = [3; 1; 4];
v = [2 0 -1];
x = v*u
x =

     2
X = u*v
X =

     6     0    -3
     2     0    -1
     8     0    -4

矩阵乘法

矩阵乘法是以这样一种方式定义的:反映底层线性变换的构成,并允许紧凑表示联立线性方程组。如果 A 的列维度等于 B 的行维度,或者其中一个矩阵为标量,则可定义矩阵乘积 C = AB。如果 A 为 m×p 且 B 为 p×n,则二者的乘积 C 为 m×n。该乘积实际上可以使用 MATLAB for 循环、colon 表示法和向量点积进行定义:

A = pascal(3);
B = magic(3);
m = 3; 
n = 3;
for i = 1:m
     for j = 1:n
        C(i,j) = A(i,:)*B(:,j);
     end
end

MATLAB 使用星号表示矩阵乘法,如 C = A*B 中所示。矩阵乘法不适用交换律;即 A*B 通常不等于 B*A

X = A*B
X =
      15    15    15
      26    38    26
      41    70    39
Y = B*A
Y =
      15    28    47
      15    34    60
      15    28    43

矩阵可以在右侧乘以列向量,在左侧乘以行向量:

u = [3; 1; 4];
x = A*u
x =

     8
    17
    30
v = [2 0 -1];
y = v*B
y =

12 -7 10

矩形矩阵乘法必须满足维度兼容性条件:由于 A 是 3×3 矩阵,C 是 3×2 矩阵,因此可将二者相乘得到 3×2 结果(共同的内部维度会消去):

X = A*C
X =



    24    17
    47    42
    79    77

但是,乘法不能以相反的顺序执行:

Y = C*A
Error using  * 
Incorrect dimensions for matrix multiplication. Check that the number of columns 
in the first matrix matches the number of rows in the second matrix. To perform 
elementwise multiplication, use '.*'.

您可以将任何内容与标量相乘:

s = 10;
w = s*y
w =

   120   -70   100

当您将数组与标量相乘时,标量将隐式扩展为与另一输入相同的大小。这通常称为标量扩展

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值