построение графиков параметрических функций в matlab

#matlab #matlab-figure

#matlab #matlab-рисунок

Вопрос:

Мне нужно построить график x = cos(u) * cos (v), y = cos (v) * sin(u), z = -sin(v), где u, v оба из (0, pi). Я посмотрел на fplot3 функцию, но она принимает только один параметр. Может ли кто-нибудь указать на какую-либо функцию или есть какой-то другой способ, например, написать сценарий для построения графика?

Ответ №1:

Вы можете использовать fsurf для параметрических графиков поверхности. fsurf принимает два входных сигнала, u , и v .

 % your functions
f_x = @(u,v) cos(u).*cos(v);
f_y = @(u,v) cos(v).*sin(u);
f_z = @(u,v) -sin(v);

% plot
umin = 0;
umax = pi;
vmin = 0;
vmax = pi;

figure(1); clf;
fsurf(f_x,f_y,f_z, [umin umax vmin vmax])
  

введите описание изображения здесь

Вы также можете проверить fcontour и fmesh .

Комментарии:

1. О, я даже не знал об fsurf этом. Более чистое решение, как я предложил. 1!

Ответ №2:

Я бы использовал meshgrid для этого:

 u = linspace(0,pi,51);
v = linspace(0,pi,51);
[U,V] = meshgrid(u,v);
X =  cos(U).*cos(V);
Y =  sin(U).*cos(V);
Z = -sin(V);
  

Затем вы можете отобразить ее в виде сетки (используя mesh(X,Y,Z) ) или в виде набора линий (например, показанных здесь через plot3(X',Y',Z') ), как вам нравится:

Построение графиков через сетку
Построение графиков с помощью plot3