我正在尝试在20个快照中说明2D矩阵。我使用slice
对其进行了绘制,但是除了顶部矩阵之外,其他都看不到。有什么方法可以增加切片之间的距离,以便能够看到每个平面?也有人可以建议一种替代方法来显示4x8
的t=1:20
矩阵的时间演化吗?这是我用来绘制数据的小代码:
T2=20;
Xc = zeros(8,4,T2);
for j = 1:T2
Xc(:,:,j) = mdp2(j).X{1};
end
hs = slice(Xc,[],[],1:T2) ;
lightangle(-45,45);
view([-25 30]);
xticks(linspace(0,20,41));
axis on;
您的代码中包含一些随机数据:
T2=20;
Xc = zeros(8,4,T2);
for j = 1:T2
Xc(:,:,j) = rand(8,4);
end
hs = slice(Xc,[],[],1:T2) ;
lightangle(-45,45);
view([-25 30]);
xticks(linspace(0,20,41));
axis on;
正如@CrisLuengo所提到的,这是DataAspectRatio
属性的原样(或使用函数daspect()
,请参阅here,以获取此信息):
h = gca;
h.DataAspectRatio
ans =
1 2.33333333333333 6.66666666666667
% Or use function daspect()
daspect([1 2 3])指定沿着一个单位的长度x轴等于沿y轴的两个单位和三个单位的长度沿z轴。
减小h.DataAspectRatio[3]
会增加切片间隙。例如:
set(h, 'DataAspectRatio', [1 2.333 2])
使图像像这样:
我还将添加一些透明性以使数据可见:
alpha(h, 0.7);
如何在此处更改刻度和标签轴
使用轴属性或功能XTick
,YTick
,ZTick
。另外,通过view()
来更改摄像机的视线,例如
xticks(1:4);
view(30, 20);
给出: