A class for successive matrix products
Version 1.3.5 (13,7 KB) von
Matt J
A class representing products of matrices, internally storing/manipulating them separately.
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=3e4;
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.347683 seconds.
with the same operations using a ProdCascade representation,
tic
y2=P*x;
z2=P.'*y2;
toc %Elapsed time is 0.005741 seconds.
DISCAIMER: Error checking is never done to see whether the operators in a ProdCascade are compatible for successive multiplication.
Zitieren als
Matt J (2025). A class for successive matrix products (https://de.mathworks.com/matlabcentral/fileexchange/29498-a-class-for-successive-matrix-products), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Erstellt mit
R2010b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- MATLAB > Programming > Classes > Define Classes > Handle Classes >
Mehr zu Handle Classes finden Sie in Help Center und MATLAB Answers
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
@ProdCascade
@ProdCascade/private
| Version | Veröffentlicht | Versionshinweise | |
|---|---|---|---|
| 1.3.5 | Description update |
||
| 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 |
