partially reduced row echelon form

2 vues (au cours des 30 derniers jours)
Christoph Neumann
Christoph Neumann le 20 Août 2020
Suppose a matrix C and a matrix D. I want to bring the matrix into the form:
where is in reduced row echelon form. Currently, I do this using the following code:
%Our aim is to bring the matrix (C,D) in the form
% [Ctilde, Dtilde_1]
% [0-rows , Dtilde_2].
[CtildeT,BVCtilde] = rref([C,speye(q)]);
%Delete Zero Rows in Ctilde
CtildeWZ = CtildeT(:,1:n);
Ctilde = CtildeWZ(any(CtildeWZ~=0,2),:);
T = CtildeT(:,n+1:end);
Dtilde = T*D;
Dtilde_1 = Dtilde(any(CtildeWZ~=0,2),:);
Dtilde_2 = Dtilde(all(CtildeWZ==0,2),:);
the rref function turns out to be a bottleneck for large matrices C. Is there another potentially faster way do compute these matrices?

Réponse acceptée

Athul Prakash
Athul Prakash le 1 Sep 2020
Hey Christoph,
You may try using the 'fast rref' function created on File Exchange by Armin Ataei. It may perform faster than Matlab's rref.
Note: Code that is shared on MATLAB File Exchange is written by MATLAB users and is not developed or tested by the Mathworks.
  1 commentaire
Christoph Neumann
Christoph Neumann le 1 Sep 2020
Thanks, this indeed gave me a significant speed up of factor >1000.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by