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

10 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Jos (10584)
Jos (10584) el 29 de Oct. de 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)}

Más respuestas (1)

Mohammed Kagalwala
Mohammed Kagalwala el 29 de Oct. de 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)};

Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by