compare value between different arrays
이전 댓글 표시
Hi all. I have 2 array that have value. I want to compare each value of each array, but i dont know how to do that. Can somebody help me ? Thanks in advance.
댓글 수: 6
Azzi Abdelmalek
2013년 6월 23일
If you have
a=[2 3 4]
b=[1 4 0]
What should be the result of comparison?
Lidank Abiel
2013년 6월 23일
Iain
2013년 6월 24일
By "compare", what do you mean? Do you mean:
1. Check that each element of b is greater than, or equal to, or less than the corresponding element of a?
2. Check that each element of b is greater than, or equal to, or less than ANY element of a?
3. Check that each element of b is within a small error (which you haven't defined) of a (corresponding, or an element)
4. Check that "b" is becoming more like "a"
5. Somethign else?
Lidank Abiel
2013년 6월 24일
Iain
2013년 6월 24일
result = b > a; %(b greater than a)
result = b >= a; %(b greater or equal to a)
result = b == a; %(b equal to a)
result = b <= a; %(b less than or equal to a)
result = b < a; %(b less than a)
result is the same length as b, and is 1 (true) when b is that comparison to a, and 0 (false) everywhere else.
all(result) will be 1 (true) if all the elements of b are "that comparison"
any(result) will be 1 (true) if any of the elements of b are "that comparison"
result = b > (5*a); %(b greater than five times a)
Lidank Abiel
2013년 6월 25일
답변 (2개)
Azzi Abdelmalek
2013년 6월 23일
편집: Azzi Abdelmalek
2013년 6월 23일
a=[2 3 4]
b=[1 4 0]
comp=a<b
댓글 수: 12
Lidank Abiel
2013년 6월 23일
Azzi Abdelmalek
2013년 6월 23일
Ok, but what should be the result in this case?
Lidank Abiel
2013년 6월 23일
How do you define close?
a=[39.4029 46.6748 45.3174 26.4645 21.6932];
b=[36.8585 47.6897 46.7784 26.9878 22.2181];
tol = 1;
%check that the elements of a and b are within a given tolerance
abs(a-b) <= tol
Lidank Abiel
2013년 6월 23일
Azzi Abdelmalek
2013년 6월 23일
편집: Azzi Abdelmalek
2013년 6월 23일
Do you want to compare the first value of a with the first of b, and so on? To be more clear, please post what should be the result for your example!
Lidank Abiel
2013년 6월 23일
편집: Lidank Abiel
2013년 6월 23일
Azzi Abdelmalek
2013년 6월 23일
I've asked a simple question: what should be the result for the short example you gave.
Lidank Abiel
2013년 6월 23일
Jan
2013년 6월 23일
The code does not really answer the question, so I ask again: What is the desired result for the values:
a = [39.4029 46.6748 45.3174 26.4645 21.6932];
b = [36.8585 47.6897 46.7784 26.9878 22.2181];
Lidank Abiel
2013년 6월 24일
Jan
2013년 6월 24일
Thanks for the explanantions. Unfortuantely I do not understand this:
i want to calculate 2 value above ( maybe divided ) if the result approach to value tolerance, so, the image have percentage minimal similarity 90%.
I still do not know hwta kind of result you expect for the above mentioned input data. Are you able to calculate it manually or give a definition of the calculations? In the comments to the question you wrote "i want to compare each value of array b to array a". As soon as it is explained, what "campare" means explicitly, I assume the problem can be solved in seconds. So please try to explain this clearly.
Thorsten
2013년 6월 24일
You can compute two fractions a/b and b/a, and then take the minimum to ensure that the value is not above 100%. Then take the minimum of these values to get "percentage minimal similarity"
min_similarity = min(min([a./b; b./a]))
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!