How to avoid loops for the following matrix manipulcation

1 view (last 30 days)
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 Comments

Sign in to comment.

Answers (1)

James Tursa
James Tursa on 25 Jan 2018
Edited: James Tursa on 25 Jan 2018
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.

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!