2013-05-30 5 views
-3

Я хочу написать функцию, которая создает 3D-сетку с шаром внутри сетки. Это должно быть 3D. Я нашел this example, и это именно то, что я хочу, но я не знаю, как добавить это в функцию m-файла.Matlab: Как я могу создать 3D-сетку?

Это мой код:

function kgrid = makeGrid(Nx, dx, Ny, dy); 

% create the computational grid 
Nx = 64;   % number of grid points in the x direction 
Ny = 64;   % number of grid points in the y direction 
Nz = 64;   % number of grid points in the z direction 
dx = 0.1e-3;  % grid point spacing in the x direction [m] 
dy = 0.1e-3;  % grid point spacing in the y direction [m] 
dz = 0.1e-3;  % grid point spacing in the z direction [m] 

kgrid = makeGrid(Nx, dx, Ny, dy, Nz, dz); 

end 

ответ

1

Посмотрев на the example, он говорит на этом сайте, что makeGrid является функцией. Эта функция является частью 3rd party, open source, Matlab toolbox.
Если у вас есть этот набор инструментов (для загрузки, очевидно, вам нужен логин на сайте), вы должны иметь функцию makeGrid.

Если вы этого не сделаете, вы можете попробовать Matlab-х функция meshgrid:

xgv = linspace(0,1,64); % this will give you 64 points between 0 and 1 
ygv = linspace(0,1,64); 
zgv = linspace(0,1,64); 

ИЛИ

xgv = 0:1e-4:1; % this will give you a spacing of 1e-4 between the gridpoints 
ygv = 0:1e-4:1; 
zgv = 0:1e-4:1; 

, а затем использовать либо из вышеперечисленных с meshgrid:

[X,Y,Z] = meshgrid(xgv,ygv,zgv); 
Смежные вопросы