![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/358183/image.jpeg)
Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
I want to generate spherical from three given arrays, please help me out.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
SHUBHAM SINGH CHOUDHARY
el 8 de Sept. de 2020
Cerrada: MATLAB Answer Bot
el 20 de Ag. de 2021
X=(0:0.02:1);
Y=(0:0.02:1);
[x,y] = meshgrid(X,Y);
%z=rand(size(x))*1000;
%z=1e6*ones(size(x));
z=ones(size(x));
x0=mean(X);
y0=mean(Y);
b_center1 = [0.2,0.8];
b_center2 = [0.6,0.2];
b_center3 = [0.4,0.55];
r1=0.1*max(X);
r2=0.1*max(X);
r3=0.1*max(X);
for i=1:length(X)
for j=1:length(Y)
dist = sph2cart([[X(i),Y(j)];b_center1]);
if (dist < r1)
z(i,j)=1;
end
dist = sph2cart([[X(i),Y(j)];b_center2]);
if (dist < r2)
z(i,j)=1;
end
dist = sph2cart([[X(i),Y(j)];b_center3]);
if (dist < r3)
z(i,j)=1;
end
end
end
surf(x,y,z)
0 comentarios
Respuestas (1)
Constantino Carlos Reyes-Aldasoro
el 9 de Sept. de 2020
We would need a better explanation of exactly what you want, but I think that the main issues are: 1) you are using sph2cart instead of cart2sph and 2) you are not treating your data as matrices. In general, in Matlab you should not use for loops when you can treat everything as a matrix. Try the following code:
X=(0:0.02:1);
Y=(0:0.02:1);
[x,y] = meshgrid(X,Y);
z=repmat(permute(-1:0.02:1,[ 3 1 2]),51,51);
[azimuth,elevation,r] = cart2sph(x,y,z);
Notice that the z was created in a single line, no need to loop. Then with x,y,z you can convert coordinates and then you have your spherical space.
h1=patch(isosurface(r,0.5));
view(60,10)
lighting phong
camlight right
h1.FaceColor='r';
h1.EdgeColor='none'
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/358183/image.jpeg)
Hope this helps. Try for your problem. If this solves your problem, please accept the answer. I
2 comentarios
SHUBHAM SINGH CHOUDHARY
el 9 de Sept. de 2020
Editada: SHUBHAM SINGH CHOUDHARY
el 9 de Sept. de 2020
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!