How to get the minimum number of rows that, if removed, reduces the rank.

1 vue (au cours des 30 derniers jours)
NA
NA le 28 Juin 2020
Modifié(e) : Matt J le 23 Avr 2021
I have a matrix A
How can I get the number of rows that make matrix A rank deficient.
for example
A =[ 6.5480 -6.5480 0.0000 -0.0000
6.5480 -6.5480 0.0000 -0.0000
-6.5480 6.5480 -0.0000 0.0000
-0.0000 0.0000 5.8267 -6.0073
-0.0000 0.0000 5.8267 -6.0073
-0.0000 0.0000 -6.1879 6.3685
0 0 1.0000 0
0 0 0 1.0000]
rank_A =rank(A)
The rank of A is 3, if I remove 3 rows, the rank of the matrix changes to 2.
So, the result should be 3 ---> number of rows

Réponses (1)

Matt J
Matt J le 28 Juin 2020
Well, if A were full rank, it's rank would be
min(size(A));
So, perhaps you want the difference between this and the actual rank.
  13 commentaires
NA
NA le 23 Avr 2021
If A is
A =[ 6.5480 -6.5480
6.5480 -6.5480
-6.5480 6.5480];
subsets are
subset{:}
ans = 6.5480 -6.5480
ans = 6.5480 -6.5480
ans =-6.5480 6.5480
So numel(subset) is 3,
optimal_numbe_of_removed_rows>=3
I think it should be
Nopt>=size(subset{1},1)
Matt J
Matt J le 23 Avr 2021
Modifié(e) : Matt J le 23 Avr 2021
optimal_numbe_of_removed_rows>=3
That's correct. Because rank(A)=1 in your example, the only way to reduce the rank is to remove all 3 rows.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Sparse Matrices 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