请注意 --- 您只需执行xlabel
ylabel
zlabel
一次命令(在循环外)。
还:
- 你的矩阵有什么理由
1x1x100
而不是 just 100x1
or 1x100
?因为如果您将它们重塑为 2D,您可以一键完成绘图。
- “缺少第三轴”是什么意思?当我运行您的代码时(或尽可能接近,因为您没有提供可重现的示例),我确实得到了第三轴:
.
X = rand(1,1,100); % 1x1x100 X matrix
Y = rand(1,1,100); % 1x1x100 Y matrix
Z = rand(1,1,100); % 1x1x100 Z matrix
% Now, we could do a for loop and plot X(:,:,i), Y(:,:,i), Z(:,:,i),
% OR we can just convert the matrix to a vector (since it's 1x1x100 anyway)
% and do the plotting in one go using 'squeeze' (see 'help squeeze').
% squeeze(X) converts it from 1x1x100 (3D matrix) to 100x1 (vector):
plot3(squeeze(X),squeeze(Y),squeeze(Z),'o')
xlabel('x')
ylabel('y')
zlabel('z')
这给出了以下内容,您可以在其中清楚地看到三个轴:
如果您想让图形看起来“更 3D”是网格线,请尝试grid on
(在 Matlab 帮助文件中的示例中,请从 Matlab 提示符plot3
中尝试):help plot3
grid on
您将不得不进一步澄清“缺少第三轴”。