Return submatrix that has Full Rank
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
So I have P = ctrb(A,C) which returns the controllability matrix. which is say 5x10 Now if it has full rank, I want MATLAB to just return the 5x5 matrix that fulfills the rank requirement. How can I do this? Because I need to use that P matrix in further calculations but I can't do it with the 5x10 matrix that MATLAB gives me, I need the 5x5
1 Kommentar
Antworten (1)
David Goodmanson
am 23 Apr. 2020
Bearbeitet: David Goodmanson
am 23 Apr. 2020
Hello Shubham,
% make up an example
nrow = 5;
ncol = 10; % ncol > nrow
A = rand(nrow,ncol);
A = [A(:,1),A(:,2),A]; % toss in some duplicate columns to make sure they get rejected
At = A'; % work with transpose
[m n] = size(At); % m > n
[~, ~, p] = lu(At);
Atsub = p*At;
Asub = Atsub(1:n,:)'; % take top rows, transpose back
ind = p*(1:m)';
ind = ind(1:n)'; % index shows which columns were selected
format compact
Asub
A % visual check that all columns of Asub are contained in A
ind
rank(Asub)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!