partially reduced row echelon form

2 ビュー (過去 30 日間)
Christoph Neumann
Christoph Neumann 2020 年 8 月 20 日
コメント済み: Christoph Neumann 2020 年 9 月 1 日
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?

採用された回答

Athul Prakash
Athul Prakash 2020 年 9 月 1 日
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 件のコメント
Christoph Neumann
Christoph Neumann 2020 年 9 月 1 日
Thanks, this indeed gave me a significant speed up of factor >1000.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by