나는 화면의 픽셀 라인이 매 두 번째 또는 매 세 번째 행의 교대 패턴으로 렌더링되는 오래된 인터레이스 비디오 기술과 마찬가지로 인터레이스를 언급하고 있습니다. ( https://en.wikipedia.org/wiki/Interlaced_video 에는 프로세스에 대한 좋은 GIF가 있습니다)
따라서 행(1,2,3,4,.....99)이 있는 경우
순서 행(1,3,5,7......97,99,2,4,6,.....98)으로 렌더링됩니다(요인 2).
또는 (요인 3) 행(1,4,7.....2,5,8.....3,6,9...)
JSL을 사용하여 이 패턴에 따라 임의 길이의 시퀀스를 재정렬하는 스크립트를 작성하려고 하는데 이를 재정렬하기 위해 인덱스를 작성하는 방법을 잘 모르겠습니다. 나는 현재 이것을 달성하기 위해 행렬 수학을 계산하려고 노력하고 있지만 아마도 for 루프가 더 똑똑하고 쉬울까요?
// Create arbitrary sequence
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28];
f = 3 // interlacing factor<BR />
//Start trying to work out an index or grouping for a future sorting op
b = mod(a+f-1),3);
//b = [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 2, 0, 1, 2, 0, 1, 2, 0]<BR />
// ????
편집 : 인자가 행 수를 균등하게 나누지 않을 때 "시작"을 방지하기 위해 끝에 색인을 추가해야했습니다.
/////////////
안녕하세요,
Shape () 명령을 확인하십시오. 조옮김과 함께 원하는 것을 얻을 수 있습니다.
Names Default To Here(1);
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28];
fact = 3;
shape(shape(a, ceiling(nrow(a)/fact))`, 1)`[1::nrow(a)]
건배,
브래디
이것은 올바른 행렬을 얻는 것 같습니다 (시작 행렬이 다르게 구축 된 경우 전치가 필요할 수 있음)
Names Default To Here(1);
// Create arbitrary sequence
a = 1::30;
f = 3;
b = Mod(a+f-1,f);
m_interlaced = [];
For(i = 0, i <= f-1, i++,
m_interlaced = m_interlaced |/ a[Loc(b, i)];
);
show(m_interlaced);
Names Default To Here(1);
// Create arbitrary sequence
a = 1::99;
f = 2;
b = Mod(a+f-1,f);
m_interlaced = [];
For(i = 0, i <= f-1, i++,
m_interlaced = m_interlaced |/ a[Loc(b, i)];
);
show(m_interlaced);
JMP14에서는 "Argument should be list"를 반환합니다. Loc 함수에서 b가 호출되는 위치를 참조하면됩니다. b를 list ()로 수정하려고했지만 결과를 이해할 수 없습니다.
별도로 | /는 무엇을하며 연결 연산자 ||와 관련이 있습니까?
a = 1::30;
f = 3;
b = as list(Mod(a+f-1,f));
m_interlaced = [];
For(i = 0, i <= f-1, i++,
m_interlaced = m_interlaced |/ a[Loc(b, i)];
);
show(m_interlaced);
/*:
m_interlaced = [](0, 1);