sh
의 크기가 cs
인 겹치는 서브 벡터로 나눠 넣으려는 벡터가 있습니다. 상상 입력 벡터는 다음과 같습니다 입력 벡터가 반드시 아니라고matlab : 벡터를 고정 크기의 겹치는 덩어리로 나눕니다.
[1 2 3 4]
[3 4 5 6]
[5 6 7 8]
[7 8 9 10]
[9 10 11 12]
참고 :
v=[1 2 3 4 5 6 7 8 9 10 11 12 13]; % A=[1:13]
는 chunksize
2 (sh=2
)의 4 (cs=4
)과 변화에 대해서, 그 결과는 같아야합니다 chunksize
으로 나눌 수 있으므로 일부 서브 벡터는 버려집니다. 예를 들어를 사용하지 않고도이를 계산할 수있는 빠른 방법이 있습니까? for
루프? 관련된 post에서 나는 겹치지 않는 서브 벡터를 고려할 때 그것을 어떻게하는지 발견했습니다.
왜해야합니까? 그것은 다른 숫자로 잘 작동합니다. 'idx'는 나에게 서브 벡터의 시작 인덱스를 제공하기로되어 있기 때문에, 나는 def를 사용한다. 단계로 cs-sh가 필요합니다. 편집 : 다른 벡터와 다른 수의'cs'와'sh '를 사용하여 시도해 보았습니다. 꽤 잘 작동합니다. – tim
'cs = 5; sh = 3' 나는 시작 인덱스를 '1 3 5 7'이 아니라'1 4 7 '이라고 가정합니다. 이 경우'idx = 1 : sh : length (v)'를 사용합니다. –
미안하지만 나는 당신에게 말해야한다, 그것은 틀렸다. 그것에 대해 다시 생각해보십시오. '1 3 5 7'은 올바른 인덱스입니다 - 분명히 올바른 (제 5 열 (5 열)) 명확하게 볼 수 있듯이 내 출력 행렬을보십시오 (이것은 chunksize cs = 5 임) 및 3 개의 중복 항목 각 행의 마지막 세 항목은 다음 행의 세 번째 첫 항목입니다.) – tim