MATLAB基础学习(二)

目录

1)向量

行向量

列向量

组合向量

创建等差向量

特征化向量

向量的点乘和叉乘

引用向量的值

基本运算

2)矩阵 

基本运算

转置

不包含复数

包含复数

矩阵中数组乘法

 矩阵相乘


1)向量

行向量

列向量通过在 方括号内把数值用分号(;)隔开来创建

>> a = [2; 1; 4]
 a = 
      2 
      1
      4

列向量

要创建行向量,我们仍然是把一组数值用方括号括起来,不过这次使用的分隔符是空格 (space)或逗号(,)。

>> v = [2 0 4]
v =
 2 0 4

组合向量

设 u 和 v 是 MATLAB 中已经存在两个 列向量,各自带有 m 和 n 个元素。我们创建第三个向量 w,它的前 m 个元素来自 u,后 n 个元素来自 v。新创建的列向量一共有 m+n 个元素。这时可以写成 w = [u; v]

>> A = [1; 4; 5];
>> B = [2; 3; 3];
>> D = [A;B]
D =
 1
 4
 5
 2
 3
 3

创建等差向量

有时需要创建带有等差元素的向量,差值为 q 为一个实数。创建一个首元素为 xi,末元 素为 xe的向量 x 的语法如下: x = [xi : q: xe] 例如,要创建一个含有从 0 到 10 之间偶数的向量的写法为:

>> x = [0:2:10]
x =
 0 2 4 6 8 10

提醒:这个和遍历有点像,第一位置为开始切片地方,第二个位置为最终切片地方,第三个位置为步长

特征化向量

命令 length 返回向量中包含元素的个数

哈哈哈哈和python len()函数用法一样

>> A = [2;3;3;4;5];
>> length(A)
ans =
 5
>> B = [1;1];
>> length(B)
ans =
 2

还有max() min()这个用法也是一样的,分别求向量在最大和最小

>> A = [8 4 4 1 7 11 2 0];
>> max(A)
ans =
 11
>> min(A)
ans =
 0

向量的点乘和叉乘

向量的数量积(点乘),使用数组乘法(.*)来完成

>> J.*J
ans =
 0
 9
 16

引用向量的值

向量 v 的第 i 个元素可以用 v(i) 来引用

>> A = [12; 17; -2; 0; 4; 4; 11; 19; 27];
>> A(2)
ans =
 17
>> A(8)
ans =
 19

哈哈又和python特别像,取索引啊

基本运算

conj 命令计算向量的共轭复数向量

>> u = [i; 1+2i; 4];
>> v = conj(u)
v =
 0 - 1.0000i
 1.0000 - 2.0000i
 4.0000 

例如:

>> b = sum(v.*u)
??? Error using ==> times
Matrix dimensions must agree.

这种求共轭复数向量做求和运算会出报错问题

而conj方法不会

>> v = conj(u)
v =
 0 - 1.0000i
 1.0000 - 2.0000i
 4.0000 
>> b = sum(v.*u)
b =
 22

数量乘法

>> c = 3;
>> b = c * a
b =
 6
 3
 12

 a、b 两向量的点乘可以使用 dot(a, b)命令计算

>> a = [1;4;7]; b = [2;-1;5];
>> c = dot(a,b)
c =
 33

向量的另一个重要操作是叉乘。要计算向量的叉乘,这两个向量必须是的三维的

>> A = [1 2 3]; B = [2 3 4];
>> C = cross(A, B)
C =
 -1 2 -1

2)矩阵 

基本运算

>> B = [2,0,1;-1,7,4; 3,0,1]
B =
 2 0 1
 -1 7 4
 3 0 1

转置

不包含复数

>> A = [-1 2 0; 6 4 1]
A =
 -1 2 0
 6 4 1
>> B = A'
B =
 -1 6
 2 4
 0 1

包含复数

1.如果矩阵包含有复数元素,那么转置操作会自动计算复数的共轭值

>> C = [1+i, 4-i; 5+2*i, 3-3*i]
C =
 1.0000 + 1.0000i 4.0000 - 1.0000i
 5.0000 + 2.0000i 3.0000 - 3.0000i
>> D = C'
D =
 1.0000 - 1.0000i 5.0000 - 2.0000i
 4.0000 + 1.0000i 3.0000 + 3.0000i

 2.如果要转置复数矩阵的而不计算它的共轭值,那么我们使用(.'):

>> D = C.'
D =
 1.0000 + 1.0000i 5.0000 + 2.0000i
 4.0000 - 1.0000i 3.0000 - 3.0000i

矩阵中数组乘法

>> A = [12 3; -1 6]; B = [4 2; 9 1];
>> C = A .* B
C =
 48 6
 -9 6

 

 矩阵相乘

>> A = [1 4; 8 0; -1 3]; B = [-1 7 4; 2 1 -2];
>> C = A*B
C =
 7 11 -4
 -8 56 32
 7 -4 -10

Guess you like

Origin blog.csdn.net/qq_62932195/article/details/122484119