%----------------------------------------------------------------------------
% INTELIGENCIA ARTIFICIAL - 2024 - TP01
%----------------------------------------------------------------------------
% 6. Script 2. Dada la siguiente matriz booleana, diseñar un script que:
% a) Dada la matriz booleana simbolizada en la figura adjunta, diseñar
% un script que genere 15 matrices booleanas, del miso tamño, conteniendo
% cada una 15 “unos” dispuesto en forma aleatoria.
% a1) Comparar las 15 matrices con la matriz de muestra e identifcar
% las matrices de mayor y menor similitud.
% a2) Por cada comparacion realizada generar un indice de similitud
% (IS pertenece a R) entre 0 y 1 (un valor IS=1 significa que las
% matrices son iguales). Orientacion: investigar el indice de Jaccard
% Comparar imagenes
% https://la.mathworks.com/help/images/ref/imshowpair.html
% Convertir imagen en matriz, viceversa
% https://la.mathworks.com/help/images/ref/mat2gray.html#d126e91831
% InitialMagnification
% https://la.mathworks.com/help/images/ref/imshow.html?searchHighlight=imshow&s_tid=srchtitle_support_results_2_imshow#bvmnrxi-1-Reduce
%----------------------------------------------------------------------------
% Variables
clc
matrixAND=zeros(10,10);
successN=0;
booleanMatrix=zeros(10,10);
IS=0;
%----------------------------------------------------------------------------
% Matriz Original
booleanMatrixOriginal=zeros(10,10);
booleanMatrixOriginal(2,7)=1;
booleanMatrixOriginal(3,[5 6 8])=1;
booleanMatrixOriginal(4,[4 9])=1;
booleanMatrixOriginal([5 6],[3 10])=1;
booleanMatrixOriginal(7,[2 10])=1;
booleanMatrixOriginal(8,3)=1;
booleanMatrixOriginal(9,4)=1;
booleanMatrixOriginal(10,5)=1;
%----------------------------------------------------------------------------
% Comparo
for i=1:15
booleanMatrixOriginal
booleanMatrix=booleanMatrixRandom()
matrixAND=booleanMatrixOriginal & booleanMatrix
successN=size((find(matrixAND)),1);
switch successN
case {1,2,3}
disp('La similitud es baja')
disp('INDICE DE SIMILITUD: ')
IS=successN/15
case{4,5,6,7}
disp('La similitud sigue siendo baja')
disp('INDICE DE SIMILITUD: ')
IS=successN/15
case {8,9,10,11,12,13,14}
disp('Son casi identicas: ')
disp('INDICE DE SIMILITUD: ')
IS=sucessN/15
case 15
disp('FELICITACIONES!!!...')
disp('Son identicas')
disp('INDICE DE SIMILITUD: ')
IS=1
otherwise
disp('Ambas matrices son distintas')
disp('INDICE DE SIMILITUD: ')
IS
end
scriptGraphicOptional(booleanMatrixOriginal,booleanMatrix,matrixAND)
fprintf('----------------------------------- \n')
pause
close
end