How can i use toeplitz in cell arrays?
Show older comments
Hello ,
i have 1x38 cell matrix and every cell contains a 38x38 matrix .I want to perform toeplitz() on this cell array but matlab cannot do that .
For example if my cell array is G then i want to create this toeplitz matrix :
G_toeplitz = [G{1} 0 0 0
G{2} G{1} 0 0
G{3} G{2} G{1} 0
G{4} G{3} G{2} G{1} .......
.
.
.
]
Is there any way to do this?
Answers (2)
G = cell(1,2);
G{1} = ones(2);
G{2} = 2*ones(2);
c = [G{1} G{2}];
r = [G{1} zeros(2)];
result = toeplitz(c,r)
results in:
result =
1 1 1 1 0 0 0 0
1 1 1 1 1 0 0 0
1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0
2 1 1 1 1 1 1 1
2 2 1 1 1 1 1 1
2 2 2 1 1 1 1 1
2 2 2 2 1 1 1 1
2 Comments
Gn Gnk
on 9 Dec 2020
In my example I used 2x2 matrices to keep it simple and short. Don't you think this can be extended to 38x38?
G{1}
G{2}
Roee Ronkin
on 19 Apr 2023
0 votes
cell2mat(G(toeplitz(1:numel(G))))
Categories
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!