combining results into a single matrix

3 views (last 30 days)
Io7
Io7 on 22 Sep 2021
Commented: Io7 on 22 Sep 2021
Code:
h = [1 2 3 4 5];
for i = 2:4
First_Matrix = [h(i-1) h(i) h(i+1) ]
end
Result:
First_Matrix =
1 2 3
First_Matrix =
2 3 4
First_Matrix =
3 4 5
I want help combining the result into a single matrix which is from 3x5 from h1 to h5, I want the answer to look like.
First_Matrix = [ 1 2 3 0 0; 0 2 3 4 0; 0 0 3 4 5]
and I don't want to hard code it. please help! I would really appreciate it if somone can help me.

Accepted Answer

Matt J
Matt J on 22 Sep 2021
Edited: Matt J on 22 Sep 2021
One way.
h = [1 2 3 4 5];
n=numel(h);
m=n-2;
First_Matrix=toeplitz([1,zeros(1,m-1)] ,[1 1 1 zeros(1,n-3)]).*h
First_Matrix = 3×5
1 2 3 0 0 0 2 3 4 0 0 0 3 4 5

More Answers (0)

Community Treasure Hunt

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

Start Hunting!