Growing Diagonal Matrix Problem
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I am trying to create a diagonal matrix that can grow a # of rows and # of collumns. These collumns can be from a range of 10 to 100000 to infinite but must maintain a pattern.
For simplicity I am using a 9x9 Matrix. It seems like it is repeating 3 matrics over and over.
1 - Diagonal
1 - Ones Diagonal
1 - Zeros
A B 0 1 0 0 0 0 0
B A B 0 1 0 0 0 0
0 B A 0 0 1 0 0 0
1 0 0 A B 0 1 0 0
0 1 0 B A B 0 1 0
0 0 1 0 B A 0 0 1
0 0 0 1 0 0 A B 0
0 0 0 0 1 0 B A B
0 0 0 0 0 1 0 B A
I am having a hard time trying to seeing how to write this.
0 comentarios
Respuestas (1)
Matt J
el 23 de Mzo. de 2021
Editada: Matt J
el 24 de Mzo. de 2021
A=3; B=4;
M=[A B 0; B A B; 0 B A];
n=3;
e = ones(n,1);
Q = spdiags([e 0*e e],-1:1,n,n);
%Q=toeplitz(sparse([0,1,zeros(1,n-2)]));
result =kron(speye(n),M)+kron(Q,eye(3));
full(result)
4 comentarios
Matt J
el 23 de Mzo. de 2021
If you mean you want to remove the last row and column, then,
result(:,end)=[]; %remove last column
result(end,:)=[]; %remove last row
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!