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

344 ビュー (過去 30 日間)
ESIDOR PASHAJ
ESIDOR PASHAJ 2018 年 3 月 8 日
コメント済み: Walter Roberson 2024 年 10 月 10 日
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.

採用された回答

njj1
njj1 2018 年 3 月 8 日
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 件のコメント
njj1
njj1 2018 年 3 月 8 日
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 2018 年 3 月 8 日
I worked around your answer and got to where I wanted to get. Thank you very much.

サインインしてコメントする。

その他の回答 (1 件)

Muhammad Ali
Muhammad Ali 2024 年 10 月 10 日
You can simply use the following code to find at which index both arrays have same values.
Example:
same_index = find(array1 == array2);
  1 件のコメント
Walter Roberson
Walter Roberson 2024 年 10 月 10 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by