을 사용하여 그래프를 그릴 필요가 semilogx(x,y)
있습니다. 나는 x=[0 1 2 ... 10 15 20 30 50 75 100]
. 문제는 MATLAB이 플롯하지 않는다는 x=0
것입니다 log(0)=undef
. 그렇다면 MATLAB에 내 포인트를 분산시키는 또 다른 방법이 있습니까? 선형 스케일을 사용하면 그래프 너비의 1/10에있는 모든 첫 번째 포인트가 압착되기 때문입니다!
일반적으로 이와 같은 경우에 수행되는 작업은 1
all에 추가 x
되므로 첫 번째 값 (원래 0
)이 원점에 표시되고 역변환도 모든 값에 대해 동일합니다. 이외의 다른 작은 값을 추가 1
하면 비슷한 결과를 얻을 수 있습니다. 그러나 너무 작은 값 (예 :)을 추가하는 것은 원하지 않습니다 eps
. 다음 값에서 멀리 떨어져서 다른 모든 값이 그래프의 오른쪽에 쌓이기 때문입니다.
예를 살펴 보겠습니다.
x = [0 logspace(0,2,5)];
% x = 0 1 3.1623 10 31.623 100
y = 2.*(x+1); % add 1 to all x
semilogx(x+1,y,'o','markerfacecolor','b')
당신이 당신으로 교체 0
하면 eps
다음을 얻습니다.
x = [0 logspace(0,2,5)];
y = 2.*(x+eps); % add a tiny value too all x
semilogx(x+eps,y,'o','markerfacecolor','b')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다