ただ注意してください --- コマンドを 1 回だけ実行する必要がありxlabel
ylabel
zlabel
ます (ループの外で)。
また:
1x1x100
あなたの行列が orの代わりにある理由はあります100x1
か1x100
? それらを2Dに再形成すると、1回のヒットでプロットを実行できるからです。
- 「第 3 軸が欠けている」とはどういう意味ですか? あなたのコードを実行すると (または、再現可能な例が提供されていないため、可能な限り近くで実行すると)、3 番目の軸が得られます。
.
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')
これにより、次のようになり、3 つの軸がはっきりとわかります。

グラフを「より 3D」に見せたいのがグリッド線である場合は、試してくださいgrid on
(これは、Matlab ヘルプ ファイルの例にあり、Matlab プロンプトからplot3
試してください)。help plot3
grid on

「第 3 軸の欠落」をもう少し明確にする必要があります。