Matrice carrée binaire d’origine :
0 1 0
0 0 1
1 0 1
Grâce à une fonction , tu la transforme en sa matrice d’incidence, cad les coordonnées des points (ici que des 1) :
Lignes colonnes
1 2
2 3
3 1
3 3
Mettons maintenant, tu veux transposer ta matrice, cad tu veux que tes lignes deviennent tes colonnes et vis et versa, je te montre :
Matrice carrée binaire d’origine transposée :
0 0 1
1 0 0
0 1 1
Sa matrice d’incidence transposée :
Lignes colonnes
1 3
2 1
3 2
3 3
Mais normalement tu ne dois pas repasser par les matrices carrées d’origine, je voulais juste te montrer ce que ça faisait.
En fait, tu dois créée une fonction qui passe de la matrice d’incidence à la matrice d’incidence transposée sans repassé par les matrices carrées binaires.
Tu peux aussi d’autres fonctions de calculs matriciels comme la multiplication ou l’addition de 2 matrices d’incidence quelconques qui te donne une 3ème matrice d’incidence, toujours sans repasser par les matrices carrées d’origine.
Function ind (nbcherch, nbcaseecr, nbabs, nbordo)
'nbcherch représente ce que tu cherche 1 ou 0
'nbabs représente le nombre d'abscisse (nombre de ligne que contient la matrice)
'nbordo les ordonnées (nombre de colonne que contient la matrice)
'tu les initialise avant le bout de code que je t'ai donné : Par exemple:
'nbcaseecr représente l'ordonnées de la case écrite dans la ligne 6
'ordonnée et abscisse représenter ligne et colonne
Dim nbabs As Integer
Dim nbordo As Integer
nbabs = 2
nbordo = 3
nbcherch = 1
nbcaseecr = 1
For i = 1 To nbabs
For j = 1 To nbordo
If Cells(i, j) = nbcherch Then
Cells(6, nbcaseecr) = i + 'et' + j
nbcaseecr = nbcaseecr + 1
End If
Next i
Next j
End Function
'Mais ce sont le nombre de colonne et de ligne, le calcul et le parcours de ces lignes se font au niveau du for:
For i = 1 To nbabs
For j = 1 To nbordo
Next
Next
'Cela permet le parcours de 1 à la valeur contenu dans nbabs, valeur consevé dans i et à l'intérieur de cette boucle parcours de 1 a nbordo avec valeur conservé dans j.
Cells (6, nbcaseecr) = i + 'et' + j
'Cette ligne écrit dans la ligne 6 a la colonne nbcaseecr variable qui s'incrément a chaque écriture (pour éviter de remplacer la données existantes)
voila j'ai essayé d'ecrire la fonction. si quelqu'un peut m'aider à la corriger et à la mettre en forme