MatLab---矩阵乘法与变量的显示与输出

一、矩阵的乘法

M1=randi([1,3],[3,4])

M1 =

3 1 1 2
3 1 3 1
1 2 1 3

M2=randi([1,9],[4,3])

M2 =

4 8 8
9 3 6
1 9 8
6 7 3

M1*M2

ans =

34 50 44
30 61 57
41 44 37

矩阵的乘法:第一个矩阵的列数与第二个矩阵的行数必须相同

M0=randi([1,9],[4,4])

M0 =

3 3 9 3
3 4 2 5
6 8 8 4
8 6 7 6

>> M0*M0

ans =

96 111 126 78
73 71 86 67
122 138 162 114
132 140 182 118

>>
>> M0^2

ans =

96 111 126 78
73 71 86 67
122 138 162 114
132 140 182 118

>> M0.^2 

ans =

9 9 81 9
9 16 4 25
36 64 64 16
64 36 49 36

M0*M0=M0^2 结果是一致的;

而M0.^2是每个位置元素的平方

二、矩阵的内积

v1=randi([1,9],[1,3])

v1 =

4 4 6

>> v2=randi([1,9],[1,3])

v2 =

7 7 7

sum(v1.*v2)

ans =

98

也可以用转置来实现

v1*v2'   转置的优先级高于矩阵乘法的优先级

ans =

98

三、矩阵的叉乘

cross(v1,v2)

ans =

-14 14 0

>> v1=[1 2 3 4]

v1 =

1 2 3 4

>> cross(v1,v1)
错误使用 cross
在获取交叉乘积的维度中,A 和 B 的长度必须为 3

四、特殊矩阵

1.生成希尔伯特矩阵

hilb(3)

ans =

1.0000 0.5000 0.3333
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000

2.生成帕斯卡矩阵,由杨辉三角形表组成的矩阵称为帕斯卡矩阵

pascal(5)

ans =

1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70

3.生成幻方,N阶矩阵。它的行、列、对角线之和相同。

magic(4)

ans =

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

五、ind2sub() 将矩阵的线性下标转换成几行几列

M=randi([1,9],[4,4])

M =

8 5 5 2
2 8 4 3
6 2 8 7
3 3 9 4

[I,J]=ind2sub(size(M),find(M==2))

I =

2
3
1


J =

1
2
4

六、变量的显示与输出

创建脚本文件

1.有两种输出,分别是disp与fprintf

radius=5;
area1=pi*radius^2;
disp(['the area of the disc is ' num2str(area1)]);

以上的情况要用到一个函数num2str()将数字转换成字符的形式才可以与前面的捏合在一起


fprintf('the area of the disc is %f \n',area1); % %f以浮点数的形式表示出来;
fprintf('the area of the disc is %d \n',area1); % %d以科学计数法的形式表示出来
fprintf('the area of the disc is %6.2f \n',area1); %占位符 占6个位置,小数点后2位
fprintf('the area of the disc is %+6.2f \n',area1); %占位符 占6个位置,小数点后2 有加号,便于有正有负时,可以对齐

2.num2str()

num2str(pi,8)

ans =

'3.1415927'

>> num2str(pi,'%8.2f')

ans =

'3.14'

>> num2str(pi)

ans =

'3.1416'

七、矩阵的正除号与反除号

A=eye(3)

A =

1 0 0
0 1 0
0 0 1

>> A=eye(3/3)

A =

1

>> A=eye(3)/3

A =

0.3333 0 0
0 0.3333 0
0 0 0.3333

>> B=eye(3)*3

B =

3 0 0
0 3 0
0 0 3

>> A\B

ans =

9 0 0
0 9 0
0 0 9

>> A\B%A的逆 乘以 B

ans =

9 0 0
0 9 0
0 0 9

>> A/B %A 乘以 B的逆

ans =

0.1111 0 0
0 0.1111 0
0 0 0.1111

>> %谁在下面,谁是逆

posted @ 2022-04-07 16:04  无敌小金刚  阅读(742)  评论(0)    收藏  举报