2017-06-19 2 views
1

J'ai une matrice binaire A de taille 4x7. Je veux créer une fonction Matlab qui détermine si les quatre premières colonnes de la matrice sont linéairement indépendantes sinon permute pour trouver les quatre premières colonnes linéairement indépendantes et les trois autres colonnes suivront. Par exemple: si les trois premières colonnes et les cinquièmes colonnes sont linéairement indépendantes, alors la nouvelle matrice donnera les première, deuxième, troisième et cinquième colonnes et les trois dernières colonnes seront les quatrième, sixième et septième colonnes de A.Quatre premières colonnes linéairement indépendantes d'une matrice binaire

Exemple:

A = [1 0 0 1 0 0 1 1;0 1 0 1 1 0 0 1;0 0 1 1 1 0 1 0;0 0 0 0 1 1 1 1]; 

les trois premières colonnes de A sont linéairement indépendants, le cinquième colomn est indépendante linéairement des trois premiers colomns. nous trouvons

B = [1 0 0 0 1 0 1 1;0 1 0 1 1 0 0 1;0 0 1 1 1 0 1 0;0 0 0 1 0 1 1 1]; 

Répondre

1

si A est 4x7 vous pouvez trouver la solution dans ce qui suit:

A = randi(1, 4, 7); // replace real A here 
    p = perms(1:7); 
    for i = 1:length(p) 
     newA = A(:,p(i,:)); 
     if(rank(A(:,1:4)) == 4) 
      break; 
     end 
    end 
    result = newA; 
+0

d'abord merci pour votre code.But si les quatre colonnes de la matrice A sont la fonction doit retourner indépendante la même matrice A. Et la permutation des colonnes pour avoir les quatre colonnes indépendantes à ordonner. Si A = [1 0 0 1 1 0 0; 0 0 0 1 0 1 1; 0 0 1 0 1 0 1; 0 1 0 1 1 0 1] vous programmez le résultat de retour = [0 0 1 1 0 0 1; 1 1 0 1 0 0 0; 1 0 1 0 1 0 0; 1 0 1 1 0 1 0] alors que les quatre premières colonnes de A étaient déjà linéairement indépendantes. – m2016b

+0

Je veux Si une matrice A = [1 0 0 1 0 0 1 1; 0 1 0 1 1 0 0 1; 0 0 1 1 1 0 1 0; 0 0 0 0 1 1 1 1] le programme sera juste échanger les colonnes 4 et 5 (car les quatre premières colonnes de A dépendent) pour donner une nouvelle matrice B = [1 0 0 0 1 0 1 1; 0 1 0 1 1 0 0 1; 0 0 1 1 1 0 1 0 ; 0 0 0 1 0 1 1 1] et si les quatre premières colonnes de A sont indépendantes, le programme retourne juste la matrice A. – m2016b

+0

Si vous voyez le résultat des 'perms', il est démarré par la permutation ordonnée comme [1 2 3 4 5 6 7]. – OmG