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カテゴリ
- MATLAB > Programming > Classes > Define Classes > Handle Classes >
Help Center および MATLAB Answers で Handle Classes についてさらに検索
タグ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!@ProdCascade
@ProdCascade/private
| バージョン | 公開済み | リリース ノート | |
|---|---|---|---|
| 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
|
||
| 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 |
