vector multiplied a matrix

3 ビュー (過去 30 日間)
Paul Rogers
Paul Rogers 2020 年 6 月 11 日
コメント済み: the cyclist 2020 年 6 月 11 日
Hi, I need this multiplication and I can't whats wrong
f=c.*T
where c and T are the attached files.
so I expect a raw vector f where:
f_11 = c_11*T_11 + c_12*T_21 + c_13*T_31 + c_14*T_41 + c_15*T_51;
f_12= c_11*T_12 + c_12*T_22 + c_13*T_32 + c_14*T_42 + c_15*T_52;
and so on.
It's really stupid i know, but I can''t figured out why it's not working.
c has 1 colum and 5 rows, T has 101 colums and 5 rows.
  4 件のコメント
Stephen23
Stephen23 2020 年 6 月 11 日
James Tursa
James Tursa 2020 年 6 月 11 日
Your notation is confusing. You say c has 5 rows and 1 column, yet you use c_12 in your example indicating it has 1 row and 5 columns.

サインインしてコメントする。

採用された回答

James Tursa
James Tursa 2020 年 6 月 11 日
編集済み: James Tursa 2020 年 6 月 11 日
Maybe this is what you want if c is 5 x 1 and T is 5 x 101:
f = c.' * T;

その他の回答 (1 件)

the cyclist
the cyclist 2020 年 6 月 11 日
If your version of MATLAB is older than R2016b, then c will not be "implicitly expanded" to the size of T. You can do the following to get what you want:
f = bsxfun(@times,c,T)
  2 件のコメント
Paul Rogers
Paul Rogers 2020 年 6 月 11 日
I've just did it but I expeted f to be a raw not a matrix.
the cyclist
the cyclist 2020 年 6 月 11 日
Sorry, I missed that you wanted the sum. What you want is actually a matrix multiplication, not an element-wise multiplication, which is the syntax you were trying to use. I think you want this:
f = T'*c;

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品


リリース

R2014b

Community Treasure Hunt

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

Start Hunting!

Translated by