Просто примечание - вам нужно всего лишь один раз выполнить команды xlabel
ylabel
zlabel
(вне цикла).
Также:
- isесть ли причина, по которой ваши матрицы
1x1x100
вместо 100x1
или 1x100
?Потому что, если вы измените их в 2D, вы можете просто нанести изображение за один удар. - Что вы подразумеваете под «отсутствующей третьей осью»?Когда я запускаю ваш код (или настолько близко, насколько могу, поскольку вы не предоставили воспроизводимый пример), я делаю получаю 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')
Это дает следующее, в котором вы можете четко видеть три оси:
Если вы хотите, чтобы график выглядел более "трехмерным", попробуйте grid on
(который находится в примерах в файле справки Matlab для plot3
, попробуйте help plot3
из приглашения Matlab):
grid on
Вам придетсяуточнить немного «отсутствующую третью ось».