Growing Diagonal Matrix Problem
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Matt J
il 23 Mar 2021
Modificato: Matt J
il 24 Mar 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 Commenti
Matt J
il 23 Mar 2021
If you mean you want to remove the last row and column, then,
result(:,end)=[]; %remove last column
result(end,:)=[]; %remove last row
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!