How best and most efficient way to build this matrix

2 visualizaciones (últimos 30 días)
Scott Banks
Scott Banks el 3 de Sept. de 2023
Comentada: Matt J el 4 de Sept. de 2023
Hi guys,
I am wondering what is the best and most efficient way to build this matrix using loops and functions? Rather than inputting the numbers manually?
A = [-2 1 0 0 0 0 0 0 0 0
6 -4 1 0 0 0 0 0 0 0
-4 6 -4 1 0 0 0 0 0 0
1 -4 6 -4 1 0 0 0 0 0
0 1 -4 6 -4 1 0 0 0 0
0 0 1 -4 6 -4 1 0 0 0
0 0 0 1 -4 6 -4 0 0 0
0 0 0 0 1 -4 6 -4 1 0
0 0 0 0 0 1 -4 6 -4 1
0 0 0 0 0 0 0 0 1 -2]
A = 10×10
-2 1 0 0 0 0 0 0 0 0 6 -4 1 0 0 0 0 0 0 0 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 0 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 0 0 1 -2
Many thanks
  3 comentarios
Matt J
Matt J el 3 de Sept. de 2023
Has A(7,8) deliberately been made 0 instead of 1? If so, it is not clear what the pattern is supposed to be.
Scott Banks
Scott Banks el 3 de Sept. de 2023
No, Matt, it should be 1. Sorry for the typo

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 3 de Sept. de 2023
[C,R]=deal(zeros(1,10));
C(1:4)=[-4 6 -4 1];
R(1:2)=[-4,1];
A=toeplitz(C,R);
A(1)=-2;
A(end,:)=flip(A(1,:))
A = 10×10
-2 1 0 0 0 0 0 0 0 0 6 -4 1 0 0 0 0 0 0 0 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 0 0 1 -2
  3 comentarios
Matt J
Matt J el 4 de Sept. de 2023
@Scott Banks for a full explanation, I suggest the documentation links provided by Walter.

Iniciar sesión para comentar.

Más respuestas (1)

Torsten
Torsten el 3 de Sept. de 2023
Movida: Torsten el 3 de Sept. de 2023
Experiment with "spdiags":
If first and last row appear different from your matrix, you can change them subsequently.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by