## Creating a spherical matrix

### Julia Sandell (view profile)

on 16 Jan 2013

I am attempting to run a monte carlo simulation modeling the photon transport in a sphere with two different layers. To run this code I need to generate a segmented sphere. The 100x100x100 slab example with four different layers looks like this:

```seg = zeros(100,100,100);
seg(:,:,10:25) = 1;
seg(:,:,26:50) = 2;
seg(:,:,51:75) = 3;
seg(:,:,76:end) = 4;
fid = fopen('seg.bin', 'wb');
fwrite(fid, seg, 'uint8');
fclose(fid);
```

How would I do something similar for a 50x50x50 sphere and an ellipsoid. The commands sphere() and ellipsoid() give me the coordinates for such a shape in an array, but I need to assign numbers as in the example above to a spherical volume.

Thank you so much!

## Products

No products are associated with this question.

### Teja Muppirala (view profile)

on 16 Jan 2013

Something like this?

```Rx = 1; %<-- Change these to make an ellipse instead
Ry = 1; %<-- Change these to make an ellipse instead
Rz = 1; %<-- Change these to make an ellipse instead
```
```[X,Y,Z] = ndgrid(linspace(-Rx,Rx,50),linspace(-Ry,Ry,50),linspace(-Rz,Rz,50));
```
```R = sqrt((X/Rx).^2 + (Y/Ry).^2 + (Z/Rz).^2);
```
```seg = zeros(size(X));
seg(R <= 1 ) = 1;
seg(R <= 0.5) = 2;
```
```slice(Y,X,Z,seg,0,0,0);
axis equal vis3d; colorbar;
```

Julia Sandell

### Julia Sandell (view profile)

on 20 Feb 2013

Thank you so much! This exactly what I needed!

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Apply Today

New to MATLAB?

Learn MATLAB today!