I have a 200x5 matrix (Y) that includes 5 time series and a 5x1 vector of weights (w). For each t (row of the matrix), I need to compute the following element-wise product:
How can I do that?
Thank you

 Akzeptierte Antwort

David Hill
David Hill am 4 Apr. 2020

0 Stimmen

S_t=Y_t.*w';

3 Kommentare

Alex
Alex am 4 Apr. 2020
Bearbeitet: Alex am 4 Apr. 2020
It doesn't work because matrix dimensions don't agree, I think a for loop is necessary. I tried this but it doesn't work again
for i= 1:length(y)
s(i) = y.*w';
end
Florian Floh
Florian Floh am 4 Apr. 2020
No, David's code does work. Matlab is smart enough to recognize, that the dimensions do not agree, so it performs it for each row.
But in theory, you are right, Alex. The Hadamard product requires to have matrices who's dimensions do match ;)
Alex
Alex am 4 Apr. 2020
thank's

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Torsten
Torsten am 4 Apr. 2020

0 Stimmen

Y_t = bsxfun(@times,Y_t,w)

Kategorien

Gefragt:

am 4 Apr. 2020

Kommentiert:

am 4 Apr. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by