How to multiplicate two block matrices with following conditions?

4 visualizzazioni (ultimi 30 giorni)
I have a block diagonal matrix P with size 500*500 like this
P=[A 0 0
0 A 0
0 0 A...
... ];
each element A on the diagonal is a (m*n) matrix and there are T number of these matrices. (i.e. There are T elements on the diagonal and T is a large number like 500) I want to multiply each diagonal element(which is a matrix), with one of the elements of another block matrix V that is like this:
V=[B1;B2;...,BT]
%there are again so many Bi; (T=500);
%Each Bi is a (n*1) vector
Each A on the diagonal should be multiplied to the corresponding B.
In other words we want to calculate a block by block multiplication. One block of matrix P is multiplied by the corresponding block of V. Although A is (m*n) and Bi is (n*1), but when we do P*V, it gives this Error: "Inner matrix dimensions must agree."
  2 Commenti
James Tursa
James Tursa il 14 Feb 2017
"... I want to multiply each diagonal element(which is a matrix), with each one of the elements of another block matrix ... "
"... There exists one A for each B ..."
So, which is it? Multiply each A by each B, or multiply only one A for each B? Can you write down in pseudo-code what the result would look like?
sn at
sn at il 14 Feb 2017
Multiply each A by each B, But there are 500 of these pairs A and Bi.
the answer will almost be like this:
[y1;y2;...;y500] in which yi=A*Bi.
A is (m*n) and each Bi is n*1;
There will be 500 matrices yi which are (m*1) each.

Accedi per commentare.

Risposte (1)

sn at
sn at il 14 Feb 2017
Modificato: sn at il 14 Feb 2017
I found a file named block diagonal multiplication by David Holdaway in File Exchange. This function is Used for multiplying large block diagonal matrices with matrices / vectors. I think I will need this.
 

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!

Translated by