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

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by desah on 23 Nov 2012

Hi, i'm a newbie of this community.I'm sorry for any next mistakes.For my thesis of dinamical of the structrures at university i have to calculate the pressure into an acustic hole.Here is the scripts for the calcus of this pressure in every point of the hole.the hole is a box with this dimensions(pi,2,1).i divided it into a grid of 51x51x51 points.

n_nod=51; %%%number of nodes for each side x=linspace(0,pi,n_nod); y=linspace(0,2,n_nod); z=linspace(0,1,n_nod);

r_int=zeros(n_nod,n_nod,n_nod);

Ppr=zeros(n_nod,n_nod,n_nod);

for i=1:1:n_nod for j=1:1:n_nod for h=1:1:n_nod

r_int(i,j,h)=((0.5-x(i))^2+(1.5-y(j))^2+(1.5-z(h))^2)^0.5; Ppr(i,j,h)=1/(2*pi*r_int(i,j,h));

end end end

the script generate an array Ppr of 51x51x51 elements.I'd like to plot Ppr in a 3D graph in different colour in fuction of the each points. which command can add to the script to do this??? thanks to all for any answer!

*No products are associated with this question.*

Answer by Azzi Abdelmalek on 23 Nov 2012

Edited by Azzi Abdelmalek on 23 Nov 2012

mesh(Ppr(:,:,1),Ppr(:,:,2),Ppr(:,:,3))

Answer by desah on 23 Nov 2012

Edited by desah on 23 Nov 2012

thank you for the fast answer.I've tried to add mesh(Ppr(:,:,1),Ppr(:,:,2),Ppr(:,:,3)) after the for loop but it plots only the last values on a 3D space and it appears like a multicolour line.if i add the string into the for loop it never stops and goes in overclock.I just want to visualize a volume 51x51x51 points in differt colours.is it possible or not? Regard

Show 3 older comments

desah on 23 Nov 2012

no i'm sorry.it doesn't work.Out of the loop it write just a line.not a volume.if i put it into the loop it never stop

Azzi Abdelmalek on 23 Nov 2012

I can't tell what do you want to plot? Can you precize what do you want to plot, what are x, y and z

desah on 24 Nov 2012

x,y,z are 3 vectors of 51 points that form a grid box.(x,y,z=linspace(:,:.51)).I want to plot the matrix P that is function of x,y,z together.(I've calculated P in all the points of the space;you can verify this if you run my script,)In this way P is an array of 51*51*51 elements.I'd like to visualize a cube of different colours that represent the trend of the pressure inside the box in all points.

Answer by Michael scheinfeild on 9 Jul 2014

i think you need to look at volume visualization functions like figure,slice(Ppr,x,y,z)

## 3 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/54594#comment_113000

use mesh

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/54594#comment_113005

i don't know how use mesh.I've tried to add it in this way mesh(Ppr(:,:,1),Ppr(:,:,2),Ppr(:,:,3)) but the program returns just a multicolour line in a 3D-space.if i add the same command inside the for loop it never stop the loop.

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/54594#comment_224695

slice