2014-11-05 2 views
2

Я сделал следующий код:Использование команды meshz в Matlab

u=linspace(0,1,40); 
v=linspace(0,1,40); 
[u,v]=meshgrid(u,v); 
x=u; 
y=v.*sqrt(u); 
z=x+y+1; 
meshz(x,y,z) 
xlabel('x-axis') 
ylabel('y-axis') 

который дает следующее изображение:

enter image description here

Теперь я хотел бы, чтобы уменьшить сетчатые стенки вниз к плоскости xy (по адресу z=0). Я попытался следующие, которые не работали:

u=linspace(0,1,40); 
v=linspace(0,1,40); 
[u,v]=meshgrid(u,v); 
x=u; 
y=v.*sqrt(u); 
z=x+y+1; 
meshz(x,y,z) 
xlabel('x-axis') 
ylabel('y-axis') 
v=axis; 
v(5)=0; 
axis(v) 

что дает следующую картину:

enter image description here

Я попробовал несколько других вещей, как последний код: добавление hold on, вызывая meshz(x,y,z) опять же, но они не сработали. Как я могу расширить стены meshz до плоскости x-y?

ответ

3

Один из способов сделать это напрямую манипулировать 'ZData' производства meshz через некоторое handle graphics:

... 
h = meshz(x,y,z); % Get handle 
Z = get(h,'ZData'); % Get ZData 
Z([1 end],:) = 0; % Set border to 0, or other desired value 
Z(2:end-1,[1 end]) = 0; 
set(h,'ZData',Z); % Set ZData 
... 

, который производит

enter image description here

+0

Я думаю, что это может быть единственным способом сделать это , В 'meshz.m' он получает нижний предел для краев« штор »через' zref = min (min (z (isfinite (z)))). Таким образом, если вы не установите одну точку ввода на более низкое значение и испортили форму сетки, я не вижу другого хорошего способа сделать это. Хороший Q и хороший A. + 1s! – chappjc

+0

@chappjc: Я пытался попробовать что-то подобное, и это казалось грязным и, вероятно, было бы хрупким. Удивительно, что эта функция не имеет возможности для такого встроенного устройства. Может быть, хорошо [оставить отзыв с The MathWorks] (https://mathworksservicequest.secure.force.com/cp_case_new) на ... – horchler

+0

@horchler: Отличный ход! Однако мне любопытно, что линия Z (:, [2 end-1]) = 0 ;. Используя этот код, я повернул фигуру, а затем обнаружил, что задняя сторона отличается от самых больших z до z = 1, а затем от z = 1 до z = 0, той же зеленой стены. Когда я изменил эту строку на Z (:, [1 конец]) = 0 ;, я получил то же изображение и тот же зеленоватый цвет сверху вниз. Мысли? – David

Смежные вопросы