Is there a better to multiply matrices with is pattern?

1 回表示 (過去 30 日間)
John
John 2013 年 3 月 9 日
I have a 2 x 2 matrix A = [1 2; 3 4] and a 100 x 1 column vector B = [1 2 3 4 5 6 . . . 100]' and I want to multiply matrix A with each 2x1 sub-vector of B.
For example : [1 2; 3 4] * [1 2]
[1 2; 3 4] * [3 4]
[1 2; 3 4] * [5 6]
.
.
.
[1 2; 3 4] * [99 100]
How can I do this efficiently in code and store the results into one column vector?
  1 件のコメント
the cyclist
the cyclist 2013 年 3 月 9 日
What shape do you want the final result to be? 100x1? 2x50?

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

採用された回答

Cedric
Cedric 2013 年 3 月 9 日
Just
C = A * reshape(B, 2, []) ;
will produce a 2x50 C matrix whose columns are the 50 solutions.

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 3 月 9 日
編集済み: Azzi Abdelmalek 2013 年 3 月 9 日
Example
A=rand(2)
B=rand(1000,1)
B=reshape(B,2,[])
out=arrayfun(@(x) A*B(:,x),1:size(B,2),'un',0)
% You can get the result as one matrix
out=cell2mpat(out)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by