에서 특정 기능을 플롯 : ... 나는 결과가주기 함수라고 생각어떻게이 기능이 MATLAB
을하고 나는 그것을 그릴 원하는
을 나는 이것을 시도했지만 단 하나 있어요 포인트 :(
x1=-50:0.1:50;
x2=-50:0.1:50;
plot(cos(sqrt(power(x1,2)+power(x2,2)))/(power(x1,2)+power(x2,2)));
내 문제이고 무엇이 올바른 방법인가?
어떤 도움을 주셔서 감사합니다.
에서 특정 기능을 플롯 : ... 나는 결과가주기 함수라고 생각어떻게이 기능이 MATLAB
을하고 나는 그것을 그릴 원하는
을 나는 이것을 시도했지만 단 하나 있어요 포인트 :(
x1=-50:0.1:50;
x2=-50:0.1:50;
plot(cos(sqrt(power(x1,2)+power(x2,2)))/(power(x1,2)+power(x2,2)));
내 문제이고 무엇이 올바른 방법인가?
어떤 도움을 주셔서 감사합니다.
이후 두 개의 입력 x1
및 x2
이 있습니다. 따라서 plot3 (또는, @EitanT가 지적하거나 3 차원 플로팅 기능을 사용해야 함)을 사용해야합니다.
당신은 이제 당신이 두 개의 벡터에서 시작하기 때문에 (-50;-50)
이 (-49.9;-49.9)
이, ..., (50;50)
는, 당신은 아마 모든 조합을 포함 할 쌍을 세우고 있습니다. 따라서, meshgrid 사용 (높은 치수를, 또한 ndgrid가) : 이제, 행렬 연산을 사용 this link을 읽고 당신이 elementwise 작업이 필요하다고 볼 수
x1=-50:0.1:50;
x2=-50:0.1:50;
[X1, X2] = meshgrid(x1,x2);
: a.*b
대신 a*b
의 등 power(a,b)
이 이미 요소 단위 작업 (a.^b
과 동일)이면 행렬 등가는 mpower(a,b)
또는 a^b
입니다. -
f = cos(sqrt(power(X1,2)+power(X2,2)))./(power(X1,2)+power(X2,2)+1);
plot3(X1,X2,f);
3 차원 표면으로 그려야합니다. 예를 들어, surf
를 사용
[X1, X2] = meshgrid(-5:0.25:5, -5:0.25:5);
F = cos(sqrt(X1 .^ 2 + X2 .^ 2)) ./ (X1 .^ 2 + X2 .^ 2 + 1);
surf(X1, X2, F)
주 두 가지 :
, 당신은 EdgeColor
속성을 비활성화하여 에지 라인을 제거 할 수 있습니다
surf(X1, X2, F, 'EdgeColor', 'None')
최종 결과가 보일 것입니다 이 같은 :
차원 플롯을의
대단히 감사합니다. – zhilevan