How to set the diagonal of a cell array of matrices?

20 views (last 30 days)
I'm looking to set the diagonal of my cell array to identity, specifically eye(3,3). I know a simple for loop solution exists, but if there's something more elegant please let me know.
Thank you.

Accepted Answer

Jos (10584)
Jos (10584) on 29 Oct 2019
Well found, Mohammed! You should put as an answer here :-)
Here is another method
A = cell(4,4) % a cell array
n = size(A,1)
A(1:(n+1):end) = {eye(3,3)}

More Answers (1)

Mohammed Kagalwala
Mohammed Kagalwala on 29 Oct 2019
I found the solution ! For a cell array A of size n x n, one can do the following
A(logical(eye(n,n))) = {eye(3,3)};


Find more on Operating on Diagonal Matrices 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!