Сюжеты многомерных массивов в Matlab - PullRequest
0 голосов
/ 06 мая 2010

У меня есть массив 10x10x10, z. Как построить все в одном и том же окне, чтобы у меня было 3 графика для z(:,:,1), а под ним три графика для z(:,:,2) и т. Д.? 1004

Это то, что я имею до сих пор:

for i = 1:10

z=z(:,:,i);  
figure(i)  
subplot(1,2,1) 
surf(z)

%code, obtain new array called  "new1"...

subplot(1,2,2)  
surf(new1)

%code, obtain new array called "new2"...

subplot(1,3,3)  
surf(new2)

end;

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

Я думаю, что первые два подзаговора должны быть subplot(1,3,1) и subplot(1,3,2). Кроме того, попробуйте вставлять hold on после каждой команды subplot - это должно позволить вам сохранить то, что было нанесено ранее.

for i = 1:10

z=z(:,:,i);  
figure(i)  
subplot(1,3,1)
hold on;
surf(z)

%code, obtain new array called  "new1"...

subplot(1,3,2) 
hold on; 
surf(new1)

%code, obtain new array called "new2"...

subplot(1,3,3) 
hold on; 
surf(new2)

end;
1 голос
/ 06 мая 2010

Что такое new1 и new2? Они одинаковы для всех рядов? Или также 3D-массивы?

Я думаю, вам нужно что-то вроде этого:

for i = 1:10
    subplot(10*3,3,(i-1)*3+1)
    surf(z(:,:,i))
    subplot(10*3,3,(i-1)*3+2)
    surf(new1)
    subplot(10*3,3,(i-1)*3+3)
    surf(new2)

end

Или, в более общем случае, для переменного размера z:

N = size(z,3);
for i = 1:N
    subplot(N*3,3,(i-1)*3+1)
    surf(z(:,:,i))
    subplot(N*3,3,(i-1)*3+2)
    surf(new1)
    subplot(N*3,3,(i-1)*3+3)
    surf(new2)

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...