Using kronecker product and elementwise multiplication

4 vues (au cours des 30 derniers jours)
ektor
ektor le 26 Sep 2017
Modifié(e) : James Tursa le 26 Sep 2017
Dear all,
I have the matrix
der=[2 5 ;3 4]
OMEGA=kron(eye(2),der);
Suppose that now I have the 1 by 2 vector y
y=[3 4];
I want to multiply the first element of y with the first 'der' which is with OMEGA and the second element of y with the second 'der' which is within OMEGA.
Any ideas? Thanks in advance

Réponse acceptée

James Tursa
James Tursa le 26 Sep 2017
Modifié(e) : James Tursa le 26 Sep 2017
yy = repmat(y,size(der,1),1);
result = bsxfun(@times,OMEGA,yy(:));
or in later versions of MATLAB
result = OMEGA .* yy(:);
Should work even if der is not square.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 26 Sep 2017
Modifié(e) : Andrei Bobrov le 26 Sep 2017
der=[2 5 ;3 4]
OMEGA=kron(eye(2),der)
y=[3 4]
out = OMEGA.*kron(y,ones(1,2))

Community Treasure Hunt

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

Start Hunting!

Translated by