How to avoid loops for the following matrix manipulcation

2 ビュー (過去 30 日間)
Chuangchuang Sun
Chuangchuang Sun 2018 年 1 月 25 日
編集済み: Stephen23 2018 年 1 月 26 日
I need to do the following operations on a series of matrix A1,A2,...,A_m\in\reals^{n\times n}, and two vectors c,x\in\reals^{n}.
  • H\in\reals^{n\times n} = \sum_{i=1}{m}(A_i*x)(A_i*x)^T,
  • b\in\reals^{n} = \sum_{i=1}{m}c_i*(A_i*x).
I guess no-loop implementation will be faster. However, I tried and failed. Any ideas, guys?
Appreciate your time in advance!
  8 件のコメント
James Tursa
James Tursa 2018 年 1 月 25 日
How large is n?
Stephen23
Stephen23 2018 年 1 月 26 日
編集済み: Stephen23 2018 年 1 月 26 日
Chuangchuang Sun's "Flag" moved here:
n is around 100

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

回答 (1 件)

James Tursa
James Tursa 2018 年 1 月 25 日
編集済み: James Tursa 2018 年 1 月 25 日
Since the A_i are sparse, you are probably stuck with your loop. Consider storing them as A{i} instead of A_i, however, to make looping easier. And code it such that you do the A{i}*x calculation only once.

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by