To generate matrix from an array

10 views (last 30 days)
brijesh soni
brijesh soni on 24 Sep 2019
Answered: Jos (10584) on 24 Sep 2019
Let say I have A=[1; 2; 3; 4; 5; 6; 7; 8] as a single column array. and i want to generate the matrix B and matrix C such that
B=[1 2 3; 2 3 4; 3 4 5; 4 5 6; 5 6 7; 6 7 8]. %if repeation of last two elements of previous row is carried out%
C=[1 2 3 4; 2 3 4 5; 3 4 5 6; 4 5 6 7; 5 6 7 8; ] %if repeation of last three elements of previous row is done% and so on
Please help me to code this.

Accepted Answer

Adam Danz
Adam Danz on 24 Sep 2019
Edited: Adam Danz on 24 Sep 2019
Use implicit expansion. (starting r2016b)
B = A(1:end-2) + (0:2); %assuming A is a column vector
C = A(1:end-3) + (0:3); %assuming A is a column vector

More Answers (1)

Jos (10584)
Jos (10584) on 24 Sep 2019
More general, using indexing:
A = [1 22 3 44 55 666 7 888 9]
n = 2
B = A(((1:numel(A)-n).' + (0:n)))

Categories

Find more on Matrices and Arrays 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!