Je suis confronté à un problème concernant la façon de stocker le facteur triangulaire inférieur d'une matrice symétrique donnée (c'est une matrice de distance) dans un vecteur.vectorisation symétrique de la moitié de la matrice
Généralement, je voudrais générer directement les entrées triangulaires inférieures en donnant seulement les coordonnées (Y,Z)
d'un ensemble de points sur une grille rectangulaire: et en fait c'est là que je me suis terriblement coincé. J'ai donc commencé à penser à attaquer le problème d'un point de vue légèrement différent: générer la matrice de distance complète (encore une fois donné les couples (Y,Z)
) puis vectoriser à moitié la matrice de distance.
Néanmoins, je n'ai pas vraiment une bonne idée sur la façon d'atteindre l'objectif au moyen de for
boucles.
D'ailleurs, je sais aussi qu'il peut y avoir une bibliothèque Java
externe qui implémente la fonction vech
: vech renvoie le vecteur obtenu en éliminant tous les éléments supradiagonal de la matrice carrée X
et empiler le résultat d'une colonne au-dessus de l'autre. Cela a été utilisé dans le calcul matriciel où la matrice sous-jacente est symétrique et il serait inutile de garder les valeurs au-dessus de la diagonale principale.
Substantiellement, étant donné une matrice A = {{a,c},{b,d}}
, en appliquant vech(A)
, le résultat sera vech(A) = {a,b,d}
.
EDIT
je veux dire quelque chose comme ce qui suit:
a11 a12 a13 a14
a22 a23 a24
A= a33 a34 (aij = aji)
a44
stockage Emballé du triangle supérieur de A
:
AP = { a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 }
Pour votre dernière phrase; Qu'avez-vous essayé jusqu'à présent? –
@OliCharlesworth: J'ai essayé plusieurs pour les boucles, mais sans succès, je vais éditer ma question, y compris mon essai. – fpe
Je suggère d'échanger votre question - Demandez d'abord comment faire en utilisant des boucles for-standard, puis mentionnez que vous aimeriez aussi connaître une bibliothèque, sinon cette question tend à ne pas être constructive. – Dukeling