salut,
je voudrai savoir s'il existe une fonction qui permutte deux colonnes d'une même matrice
salut,
je voudrai savoir s'il existe une fonction qui permutte deux colonnes d'une même matrice
Peux-tu préciser si tu veux faire une permutation que tu choisis ? aléatoire ?
Quelle taille fait ta matrice ?
une permutation que je choisit moi même : entre deux colonnes que je choisit; la matrice est de taille 5*15
salut,
essaie ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 >> test=[1 2 5;5 8 4;5 4 7] test = 1 2 5 5 8 4 5 4 7 >> test(:,[3 1 2]) ans = 5 1 2 4 5 8 7 5 4 >>
ça marche mais ça reste une solution pour des matrices de petites tailles, car dans le cas où on a plusieurs colonnes c'est pas pratique d'écrire la liste des numéros de colonnes dans l'ordre souhaité.
J'ai trouvé cette solution
mais c'est une programmation manuelle, j'imagine que la fonction existe sur matlab
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 test=[1 2 5;5 8 4;5 4 7] test = 1 2 5 5 8 4 5 4 7 >> S=test(:,1); >> test(:,1)=test(:,2); >> test(:,2)=S; >> test test = 2 1 5 8 5 4 4 5 7
Bonjour,
Pour ton exemple tu peux faire de la façon suivante:
Ca doit donner le même résultat, reste à voir comment tu peux l'adapter à ta solution finale...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 test = test(:, [2 1 3]);
Bonne journée,
Duf
tu as raison, mais j'ai d'autres cas où la matrice contient plusque 50 colonnes. Alors pour ces cas existe-t-il une fonction qui permet la permutation?
Tu peux toujours faire la permutation seulement sur les indices concernés :
ou plus directement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 X = rand(3,8) idx = 1:size(X,2); idx([1 2]) = idx([2 1]); X(:,idx)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 X = rand(3,8) X(:,[1 2]) = X(:,[2 1])
Salut!
Si c'est vraiment une matrice, et non un simple tableau, tu peux la multiplier par une matrice de permutation, mais je pense que les solutions qui t'ont été proposées jusqu'ici sont plus rapides.
Jean-Marc Blanc
merci Dut, c'est bien ça ce que je cherche!
Partager