Matrix Manipulations - How to achieve these specific forms?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Mathias Dirksmeier
il 20 Set 2018
Commentato: Mathias Dirksmeier
il 20 Set 2018
Dear Community,
I am struggling to achieve two distinct forms of matrices.
1) I want to build a matrix with the following form and dimensions of [8760 x 2*8760]
(1 1 0 0 0 0 ...
0 0 1 1 0 0 ...
0 0 0 0 1 1 ...
...)
2) I want to build a matrix with the following form and dimensions of [2*8760 x 2*8760]
(0 0 0 0 0 0 ...
5 8 0 0 0 0 ...
0 0 0 0 0 0 ...
5 8 5 8 0 0 ...
...)
I just can't make that work, also I am fairly new to Matlab. I really hope somebody can see a solution here.
Thanks a lot, Mathias
1 Commento
Risposta accettata
Jos (10584)
il 20 Set 2018
Bruno's and KSSV's answers do not create the matrices you asked for, or am I mistaken? Anyways, here are my suggestions:
N = 4 ; % small example, rather than N=8760
M1 = kron(eye(N), [1 1])
% 1 1 0 0 0 0 ...
% 0 0 1 1 0 0 ...
% 0 0 0 0 1 1 ...
% ...
M2 = kron(tril(ones(N)), [0 0 ; 5 8])
% 0 0 0 0 0 ...
% 5 8 0 0 0 ...
% 0 0 0 0 0 ...
% 5 8 5 8 0 ...
% ...
2 Commenti
Bruno Luong
il 20 Set 2018
I'm not 100% convinced since in the example of (2) given by OP we can't see a 2x2 block far below the diagonal, so there is still a confusion whereas the lower-diagonal or 2-diagonal by block is needed.
In anycase he/she gets the receipt to build the matrix.
Più risposte (2)
Bruno Luong
il 20 Set 2018
>> A=diag(ones(1,5),0)+diag(ones(1,4),-1)
A =
1 0 0 0 0
1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
>> kron(A,[2 3; 5 8])
ans =
2 3 0 0 0 0 0 0 0 0
5 8 0 0 0 0 0 0 0 0
2 3 2 3 0 0 0 0 0 0
5 8 5 8 0 0 0 0 0 0
0 0 2 3 2 3 0 0 0 0
0 0 5 8 5 8 0 0 0 0
0 0 0 0 2 3 2 3 0 0
0 0 0 0 5 8 5 8 0 0
0 0 0 0 0 0 2 3 2 3
0 0 0 0 0 0 5 8 5 8
>>
4 Commenti
Bruno Luong
il 20 Set 2018
Modificato: Bruno Luong
il 20 Set 2018
The first question is easily extrapolated (I did not give the answer for the first question)
FirstQuestionMat =diag(ones(1,5),0)+diag(ones(1,4),+1)
If you claim my solution for the second quetion is good, then Jos's answer is not, and vice-versa.
Look again the results, and be clear in you mind.
Better learn the technique rather than take the answer as it is.
Vedere anche
Categorie
Scopri di più su Matrix Indexing 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!