구면 표현 된 함수 I 함수 구면 좌표로 표현 가지고MATLAB - 플롯 현재 좌표
f(r,theta,phi) = 4*exp(-r)*cos(theta)*sin(phi)
가 I이 방법 MATLAB이 플롯 싶습니다
- R3
- R2 등고선 플롯 (XZ 평면 또는 XY 평면 또는 YZ 평면)
간단한 있는가 이 일을하는 방법?
구면 표현 된 함수 I 함수 구면 좌표로 표현 가지고MATLAB - 플롯 현재 좌표
f(r,theta,phi) = 4*exp(-r)*cos(theta)*sin(phi)
가 I이 방법 MATLAB이 플롯 싶습니다
간단한 있는가 이 일을하는 방법?
그냥 직교 coordiantes의 변환 및 플롯을 수행
f = @(r, theta, phi) 4*exp(-r).*cos(theta).*sin(phi)
[XX YY ZZ] = meshgrid(x_range, y_range, z_range)
% R = sqrt(XX.^2 + YY.^2 + ZZ.^2)
% Th = acos(XX./YY)
% Phi = acos(ZZ./R)
% This is faster. . . and significantly more correct. See the comments below.
[Th,Phi,R] = cart2sph(XX,YY,ZZ)
fvals = f(R, Th, Phi)
는이 같은 3D 데이터를 시각화 isosurface
을 좋아합니다. 2D 슬라이스의 경우 Z = 0을 사용하면 imagesc(fvals(:,:,N))
또는 contour(fvals(:,:,N))
sph2cart()
을 사용하여 좌표를 변환 한 다음 plot()
/plot3()
을 사용하여 기능을 그릴 수 있습니다.
변환이 약간 씩 틀리므로 'Th = atan2 (YY, XX); Phi = asin (ZZ./R);', 그러나 바람직하게는 수치 문제를 피하기 위해 CART2SPH를 사용하십시오 – Amro
덜보기 흉한 방법이 있습니까? –
@Amro : sph2cart()를 사용하려면 어떻게 위 코드를 수정할 수 있습니까? –