내가 개발 한 조닝 공식을 사용하여 Zone Bit Recording으로 포맷 된 하드 디스크 플래터의 섹터를 시각화하고 점 집합을 플롯하여 표시하려고합니다.옥타브 - 시각화를위한 포인트 플로팅
모델 및
디스크 플래터 반경 R의 고리 방정식 0 & R N T W 피치 와 동심 트랙을 포함 1 (그래서 N T = & lt;R 1 0 - R 0)/W 및 rfloor; 섹터의 반경 N R N = R 0 + ) N * W; 섹터는 외부로 번호가 매겨집니다. 제조 공정 최소 반경 비트 피치 L B 따라서 최소 반경 섹터 피치 L에게 S = 8 * L B * ( S 허용 + E) ( S을 512 바이트로 간주하십시오). L S 반드시 는 R 0는 (최 트랙, 즉) 섹터의 최소 개수가 실제로 N S0 = 및 lfloor이다 분할되지 않기 때문에; R 0/ L S 및 rfloor가 ;, 따라서 실제 최소 섹터 피치 L이다 S0 = R 0/ N S .
주요 아이디어는 바깥쪽으로 갈 때, 트랙 N TZ의 모든 특정 수의, 원주 트랙에 섹터를 추가하고 여전히 최소한 위의 새 비트 피치를 유지하기에 충분히 큰되고 있다는 것입니다.이것은
N 로 TZ = ⌈ L을 발현 S0/이 차례로 N Z 존의 수를 계산하는 허용 ⌉
W
로서N z = N ⌈ T/N TZ ⌉,
트랙 존 N Z
같은 ( N) = lfloor; N/ N TZ 및 rfloor ;,
트랙상의 섹터들의 수 N 같은
N S ( N) = N S0 + Z ( N)
,210코드
스크립트의이 섹션은 플로팅에 이전 식의 상당히 직접 번역 : 그것은 항상 극성 그래프에 뭔가를 반환하지 않는, 때로는 옥타브가 정지
hold on; axis("equal");
parfor z = 0:NZ
NS = NS0 + z;
G = 2*pi/NS:2*pi/NS:2*pi;
R(1:NS) = [25 + W.*z.*TZ:W:25 + W.*TZ.*(z+1)];
polar(G,R,'.r');
end
hold off;
/큰 입력에 충돌합니다.
내 주된 문제점은 R
과 G
에 같은 수의 요소가 있어야한다는 사실과 함께 이것을 최적화하기 위해 옥타브의 행렬에 익숙하지 않다는 것입니다. R(1:NF)
을 사용하여 초기화하는 것은 이미 나를 이해하는 큰 도약이었다. Octave/Gnuplot은이 스크립트가 생성하게 될 수백만 (잠재적으로 수억) 개의 포인트를 처리 할 수 있지만 효율적인 방법으로 그렇게하는 것은 저 밖에 있습니다.
업데이트 :도 작동하지 않습니다 위의 코드를 깨달았다. 합리적인 출력을 생성하고 보수적 인 입력에서 충돌하지 않지만 정확한 플롯을 생성하지 않는 업데이트 된 버전이 있습니다.
for z = 0:NZ
NF = NFm + z;
G(1:TZ,1:NF) = 2*pi*ones(TZ,1)*[1:NF]/NF;
R(1:TZ,1:NF) = (25 + W*(z*TZ+[1:TZ]'))*ones(1,NF);
polar(G,R,'.r');
clear R G;
end
마지막 지점에 관련됨 : http://meta.stackexchange.com/q/291609/346663 –
@MadPhysicist thanks –
문제 없습니다. Imgur는 이제 괜찮습니다. 그래서 나는 당신을 위해 이미지를 편집했습니다. –