Matrix Manipulations - How to achieve these specific forms?
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Jos (10584)
2018년 9월 20일
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
Bruno Luong
2018년 9월 20일
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.
추가 답변 (2개)
Bruno Luong
2018년 9월 20일
>> 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
Bruno Luong
2018년 9월 20일
편집: Bruno Luong
2018년 9월 20일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Parallel and Cloud에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!