Populating a matrix with variables
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I am currently working on some finite volume method problems and as such I need to populate a matrix diagonal, I have used the 'diag' function successfully for populating the matrix with numbers but I would like to insert variables in the matrix diagonal. Would someone be able to advise me on the best way to do this. I am looking for something like the matrix included below, I know I could easily type in a matrix of that size but something of the 100*100 size just isn't practical.
Thanks for your help.
a_p1 a_e1 0 0 0
a_w2 a_p2 a_e2 0 0
0 a_w3 a_p3 a_e3 0
0 0 a_w4 a_p4 a_e4
0 0 0 a_w5 a_p5
P.S. I am fairly new to Matlab and I am using this finite volume method problem as a way to learning the software.
0 Commenti
Risposte (1)
Massimo Zanetti
il 29 Set 2016
Best way to populate diagonal matrix is to use spdiags (see help page).
For example, to obtain
A=[1,2,0,0,0,0;
0,2,3,0,0,0;
0,0,3,4,0,0;
0,0,0,4,5,0;
0,0,0,0,5,6];
Do this:
%define a matrix where columns are the diagonals
D = [1,2;
2,3;
3,4;
4,5;
5,6];
%put the columns in diagonal positions 0 (main diag) and 1 (upper diag)
%and specify matrix size 5x6
A = full(spdiags(D,[0,1],5,6));
4 Commenti
Massimo Zanetti
il 29 Set 2016
what are the real numbers that have to populate the matrix? a_1=? a_2=? .....
Vedere anche
Categorie
Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!