Untitled
function D = calcola_distanze(punti) % Input: punti è una matrice PxN dove: % - P è il numero di punti % - N è la dimensione dello spazio % Output: D è una matrice PxP delle distanze euclidee P = size(punti, 1); D = zeros(P, P); for i= 1:P for j= i:P diff = punti(i, :) - punti(j, :); %[1 2] - [3 4] dist = sqrt(sum(diff.^2))); D(i,j) = dist; D(j,i) = dist; end end end N = input('Inserisci la dimensione dello spazio (N): '); P = input('Inserisci il numero di punti (P): '); punti = 10 * rand(P,N); D = calcola_distanze(punti); %D(:) [maxDistanza, indice] = max(D(:)); [i, j] = ind2sub(size(D), indice); %ind2sub(size(D), indice); %ind2sub([3 3], 3) Indici lineari: Matrice originale: 1 4 7 (1,1) (1,2) (1,3) 2 5 8 (2,1) (2,2) (2,3) 3 6 9 (3,1) (3,2) (3,3) Se D = [0 2 4 2 0 3 4 3 0] D(:) = [0 % indice 1 2 % indice 2 4 % indice 3 2 % indice 4 0 % indice 5 3 % indice 6 4 % indice 7 3 % indice 8 0] % indice 9 numCoppie = sum(D(:) > pi)/2; Se D = [0 4 5 4 0 2 5 2 0] D(:) > pi diventa: [0 % 0 < π 1 % 4 > π 1 % 5 > π 1 % 4 > π 0 % 0 < π 0 % 2 < π 1 % 5 > π 0 % 2 < π 0] % 0 < π
Leave a Comment