использование функции isosurface MATLAB - PullRequest
3 голосов
/ 07 октября 2011

Привет, любой может дать мне простой пример того, как использовать функцию isosurface в MATLAB. Пример, приведенный при вводе help isosurface, довольно запутанный. Поиск в гугле не помог, так как никто нигде не приводит простых примеров. Все они используют предопределенные функции, такие как flow.

Для начала предположим, что у меня есть точки (x,y,z), где z = 0, и в каждой точке я определяю константу функция f(x,y,z)=6. Поэтому, если я использую функцию isosurface на isovalue 6, я бы хотел, чтобы MATLAB дал мне 3D-график с плоскостью XY, выделенной каким-то цветом, скажем, зеленым.

Ответы [ 2 ]

7 голосов
/ 07 октября 2011

Я не совсем понимаю ваш пример, но вот как вы используете isosurface для рисования сферы:

%# create coordinates
[xx,yy,zz] = meshgrid(-15:15,-15:15,-15:15);
%# calculate distance from center of the cube
rr = sqrt(xx.^2 + yy.^2 + zz.^2);

%# create the isosurface by thresholding at a iso-value of 10
isosurface(xx,yy,zz,rr,10);

%# make sure it will look like a sphere
axis equal 

enter image description here

3 голосов
/ 07 октября 2011

Пример, который вы привели, очень неинтересен, может быть, даже проблематичен.

Свернув все точки до z=0,, вы больше не можете / не должны использовать ISOSURFACE , и вместо этого следует вызывать CONTOUR . Даже тогда постоянная функция f(X,Y)=6 тоже ничего не покажет ...

Поскольку @ Jonas уже показал, как использовать ISOSURFACE, вот пример для функции CONTOUR:

%# create a function to apply to all X/Y coordinates
[X,Y] = meshgrid(-2:0.1:2,-1:0.1:1);
f = @(X,Y) X.^3 -2*Y.^2 -3*X;

%# plot the function surface
subplot(121), surfc(X,Y,f(X,Y))
axis equal, daspect([1 1 3])

%# plot the iso-contour corresponding to where f=-1
subplot(122), contour(X,Y,f(X,Y),[-1 -1]), 
axis square, title('Contour where f(X,Y)=-1')

enter image description here

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