partially reduced row echelon form

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

Accepted Answer

Athul Prakash
Athul Prakash on 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 Comment
Christoph Neumann
Christoph Neumann on 1 Sep 2020
Thanks, this indeed gave me a significant speed up of factor >1000.

Sign in to comment.

More Answers (0)

Categories

Find more on Linear Algebra 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!