Archivi autore: Amministratore

Calcolare la distanza euclidea tra due sequenze numeriche in php

In questo articolo calcoliamo la distanza euclidea di due serie numeriche molto semplici:

A (0,1,0)

B (0,5,10)

La distanza euclidea ci dice quanto le due serie sono simili tra di loro. Nel caso in cui il risultato è zero,le due serie sono uguali. Più la distanza euclidea è maggiore, più le due serie differiscono.

In php definiamo le serie come array:

$seqA=array(10,1,0);
$seqB=array(0,5,10);

Possiamo stampare uno qualsiasi dei valori degli array indicando il numero tra parentesi quadre accanto alla sequenza: Se per esempio vogliamo mostrare il primo valore della sequenza A, dobbiamo chiamare il valore 0 (cioè il primo valore) dell’array seqA.

echo $seqA[0] darà come risultato 10.

Ora stabiliamo delle coppie di array per ogni valore numerico (3) degli array di partenza:

$arraycoppia1= array($seqA[0],$seqB[0]);
$arraycoppia2= array($seqA[1],$seqB[1]);
$arraycoppia3= array($seqA[2],$seqB[2]);

Modifichiamo l’ordine dei valori degli array in base alla grandezza:

sort($arraycoppia1);
sort($arraycoppia2);
sort($arraycoppia3);

Ora calcoliamo le singoli distanze euclidee per ogni valore degli array coppia:

$de1=$arraycoppia1[1]-$arraycoppia1[0];
$de2=$arraycoppia2[1]-$arraycoppia2[0];
$de3=$arraycoppia3[1]-$arraycoppia3[0];

Per trovare la distanza euclidea tra i due array di partenza basta sommare le distanze euclidee singole:

$de= $de1+$de2+$de3;

Per trovare la distanza euclidea tra sequenze lunghe:

$seqA=array(0,1,0,5,4,…,n);
$seqB=array(0,5,10,4,5,..,n);

for($x = 0; $x <= 5; $x++) {

if(isset($de0)){

}else{ $de0 = 0;
}

$arraycoppia= array($seqA[$x],$seqB[$x]);
sort($arraycoppia);
$de= $arraycoppia[1]-$arraycoppia[0];
$de1=$de+$de0;
$de0=$de1;

}

echo $de1;