How do I find/retrieve block in block matrix?

Hi,
let's say I have 3 matrices A,B,C and store them in a block diagonal matrix, such that I can refer easily to them in a for loop.
Example:
D=[A B C; B A B; C A B];
for j=1:3
for i=1:9
E=D(i,j)^1*x
end
end
If I say D(i,j) I get an entry of matrix D. But I want the block stored in the i-th row and the j-th column in de way D is defined in the example. D(1,2) should return matrix B and D(2,2) matrix A. How can I do this?
kind regards,
Clarisha

답변 (1개)

Walter Roberson
Walter Roberson 2018년 8월 11일
편집: Walter Roberson 2018년 8월 11일

0 개 추천

In general you cannot, as you do not know that the matrices are the same size. If you knew the sizes of the matrices, you could calculate locations inside D given the block indices.
The better way to handle this is
D = {A B C; B A B; C A B};
then you would use D{1,2} to get back B, even if it is not the same size as the other matrices.

카테고리

도움말 센터File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기

태그

질문:

2018년 8월 11일

편집:

2018년 8월 11일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by