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

19 visualizzazioni (ultimi 30 giorni)
Hi,
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.

Risposta accettata

Jos (10584)
Jos (10584) il 29 Ott 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)}

Più risposte (1)

Mohammed Kagalwala
Mohammed Kagalwala il 29 Ott 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)};

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by