화면의 픽셀 라인이 매 두 번째 또는 세 번째 행마다 교대로 렌더링되는 오래된 인터레이스 비디오 기술에서와 같이 인터레이스를 언급하고 있습니다. ( 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) as rows (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);