How to compare the values of 2 arrays vs each other?

105 visualizaciones (últimos 30 días)
ESIDOR PASHAJ
ESIDOR PASHAJ el 8 de Mzo. de 2018
Comentada: Walter Roberson el 10 de Oct. de 2024
Hi guys, I am a bit of a noob at Matlab. What I want to do is compare the values of two arrays with each other to see what % similar are they? So, basically, if I have array A = (1,2,3,4) and array B = (1,2,5,6)...I would like to compare these two to each other using a function or something, and that function should state (in this case) that they are 50% similar. I would appreciate your help.

Respuesta aceptada

njj1
njj1 el 8 de Mzo. de 2018
What do you mean by "similar"? If you want simply see the number of entries that are the same, then this could do the trick:
s = A==B; %this is a boolean vector that will be 1 if the entries are the same and 0 if different
similarity = sum(s)/numel(s); this is the number of entries that are equal divided by the total number of entries
  5 comentarios
njj1
njj1 el 8 de Mzo. de 2018
I'll try to answer your question as best I can understand it. I'm guessing that you have a for loop in which a variable that is being calculated, and you want to store those calculated variables into a vector for future analysis.
stored_variable = zeros(number_of_computations,1); %pre-allocate for speed
for i=1:number_of_computations
variable1 = i^2 + 2*i + 5; %compute your changing variable here
stored_variable(i) = variable1;
end
You can actually bypass the first computation and go directly to the stored variable like:
stored_variable = zeros(number_of_computations,1); %pre-allocate for speed
for i=1:number_of_computations
stored_variable(i) = i^2 + 2*i + 5; %compute your changing variable here and store it
end
If you have a more specific problem, I might be able to provide a better answer.
ESIDOR PASHAJ
ESIDOR PASHAJ el 8 de Mzo. de 2018
I worked around your answer and got to where I wanted to get. Thank you very much.

Iniciar sesión para comentar.

Más respuestas (1)

Muhammad Ali
Muhammad Ali el 10 de Oct. de 2024
You can simply use the following code to find at which index both arrays have same values.
Example:
same_index = find(array1 == array2);
  1 comentario
Walter Roberson
Walter Roberson el 10 de Oct. de 2024
This would find locations at which the values were the same, assuming that the two arrays were the same size.
However, the task is to determine " In my example, 1 and 2 appears in both" -- so the order and size of the two arrays can be different.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by