Massive matrix, tridiagonal, ones()
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Anastasia Zistatsis
el 15 de Feb. de 2021
Comentada: Anastasia Zistatsis
el 16 de Feb. de 2021
I need to transform this matrix, taking the three diagonal lines that have numbers and make them their own matrices. My matrix, however, is 124x124. I do not want to write a 1x123 matrix out that has 122 of the same number and 1 zero. Is there a way use ones() for this?
2 comentarios
Adam Danz
el 15 de Feb. de 2021
What 3 diagonal lines?
The description of the data and the description of the goal are not clear.
A demo using a smaller matrix would likely help.
Anastasia Zistatsis
el 15 de Feb. de 2021
Editada: Adam Danz
el 15 de Feb. de 2021
Respuestas (1)
Jan
el 15 de Feb. de 2021
A = [2 13 0 0 0 0;
1 2 13 0 0 0;
0 1 2 13 0 0;
0 0 1 2 13 0;
0 0 0 1 2 13];
d1 = diag(A, 0) % [2 2 2 2 2],'
d2 = diag(A, 1) % [13 13 13 13 13].'
d3 = diag(A, -1) % [1 1 1 1].'
I do not understand, how you want to get "[13 13 13 13 13 0]" (especially the trailing 0), "zeros(1,5)*2" (zeros times anything is still zeros?), and [0 1 1 1 1] (again the leading zero)?
Ver también
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!