前言:
高维矩阵在Matlab里是指维数大于等于3的矩阵,我们可以把三维矩阵比作一本书,其中行、列和页数构成了3维,在很多领域里有着特别的额应用。
一、创建高维矩阵
1.坐标点创建
定义一个3*3*3(3维)矩阵,先把每页的内容(行和列)确定好,在确定页数:
a(:,:,1)=[1 2 3;4 5 6;7 8 9];
a(:,:,2)=[10 20 30;40 50 60;70 80 90];
a(:,:,3)=[100 200 300;400 500 600;700 800 900];
disp(' ');
a
%%%%%
result:
a(:,:,1) =
1 2 3
4 5 6
7 8 9
a(:,:,2) =
10 20 30
40 50 60
70 80 90
a(:,:,3) =
100 200 300
400 500 600
700 800 900
2.函数生成法
函数有zeros(),randn()高斯随机阵,rand()随机阵和ones()全部为1的矩阵
比如: zeros(2,3,2) 是生成全部为0的3维矩阵
ans(:,:,1) =
0 0 0
0 0 0
ans(:,:,2) =
0 0 0
0 0 0
3.拼接函数法
有repmat(),reshape(),cat()等
a=1:18;
reshape(a,3,3,2)
ans(:,:,1) =
1 4 7
2 5 8
3 6 9
ans(:,:,2) =
10 13 16
11 14 17
12 15 18
二、三维绘图
三维相比较其他高位有着更广泛的应用
1.plot3()
t=0:0.1:15;
x=exp(-0.2*t).*cos(2*t);%矩阵之间对应数的相乘为点乘,不是矩阵的相乘
y=exp(-0.2*t).*cos(2*t);
subplot(2,1,1);
plot3(x,y,t);
subplot(2,1,2);
plot(x,y);
2.surf()
x=1:10;
y=1:10;
z=zeros(10,10)%分配内存
for i=1:10
for j=1:10
z(i,j)=exp(-0.5*(x(i)^2+y(j)^2));
end
end
surf(x,y,z);