# Array manipulation: Suppose you have an array.How to take windows with overlapping along column and repeat to next doing same

조회 수: 3(최근 30일)
MSP 2017년 1월 12일
댓글: Kirby Fears 2017년 1월 23일
for example a= [1 2 3 4 5; 4 7 9 1 5; 8 7 3 2 1; 3 2 9 1 7]
so what is required to be done is take out a window of size 3 and shift the window 1 data point in the next iteration. SO the result will show
1 4 8
then 483 for the first column in 1st column of a new array.So the first array would have 6 elements and it will be a 6*5 array.
so the new array would have first two columns like 1st column [1;4;8;4;8;3] 2nd column [2;7;7;7;7;2]

댓글을 달려면 로그인하십시오.

### 채택된 답변

Kirby Fears 2017년 1월 12일
편집: Kirby Fears 2017년 1월 12일
Indexing and stacking as shown below will work for your example. Does this work for your real use case also?
a = [1 2 3 4 5; 4 7 9 1 5; 8 7 3 2 1; 3 2 9 1 7];
b = [a(1:end-1,:); a(2:end,:)];
##### 댓글 수: 2표시 이전 댓글 수: 1숨기기 이전 댓글 수: 1
Kirby Fears 2017년 1월 23일
The example I posted is easily extended to general window and shift sizes. For example, my original solution can be written with window size 3 and step size 1.
windowSize = 3;
stepSize = 1;
a = [1 2 3 4 5; 4 7 9 1 5; 8 7 3 2 1; 3 2 9 1 7];
b = [a(1:windowSize,:); a(1+stepSize:windowSize+stepSize,:)];

댓글을 달려면 로그인하십시오.

### 범주

Find more on Operators and Elementary Operations in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by