A class for successive matrix products

バージョン 1.3.4 (13.7 KB) 作成者: Matt J
A class representing products of matrices, internally storing/manipulating them separately.
ダウンロード: 669
更新 2025/8/6

ライセンスの表示

This submission defines a class for representing products of matrices (or of any objects that know how to multiply) when it is more efficient to store and manipulate the matrices separately. Below is a basic example, but more can be found in the Examples tab.
N=6000;
u=rand(N,1);
v=rand(N,1);
x=rand(N,1);
Pmat=u*v.';
and let us also represent Pmat as a ProdCascade object.
P=ProdCascade({u,v.'});
Now, compare the execution time from multiplying with Pmat and its transpose,
tic;
y1=Pmat*x;
z1=Pmat.'*y1;
toc; %Elapsed time is 0.048516 seconds.
with the same operations using a ProdCascade representation,
tic
y2=P*x;
z2=P.'*y2;
toc %Elapsed time is 0.002752 seconds.
DISCAIMER: Error checking is never done to see whether the operators in a ProdCascade are compatible for successive multiplication.

引用

Matt J (2025). A class for successive matrix products (https://jp.mathworks.com/matlabcentral/fileexchange/29498-a-class-for-successive-matrix-products), MATLAB Central File Exchange. に取得済み.

MATLAB リリースの互換性
作成: R2010b
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersHandle Classes についてさらに検索

Community Treasure Hunt

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

Start Hunting!
バージョン 公開済み リリース ノート
1.3.4

Extended mrdivide & mldivide functionality to non-square matrices, but note that results are not guaranteed exact in this case.

1.3.3

Edit to Examples.mlx

1.3.2

Title change

1.3.1

* Added mldivide, mrdivide methods
* Added Examples.mlx

1.3.0.0

Edited the copywrite info. No new code.

1.1.0.0

Modified the description page. No new code to download.

1.0.0.0