How to compare two non-integer value together?

3 Ansichten (letzte 30 Tage)
Malahat Mehraban
Malahat Mehraban am 7 Jan. 2022
Beantwortet: Image Analyst am 7 Jan. 2022
Hi all,
I have two matrix with non-integer values (they have been attached). I want to compare them and find which numbers are greater than eighty percent of their corresponding values. if the corresponding value is greater returns true and if it is less than 80% returns false.
For instance: x1=85.36 and x2=73.52; I want to compare x1 and x2 and find that is the second one greater than 80% of x1 or not.
Thank you in advance for any suggestions.
  2 Kommentare
Walter Roberson
Walter Roberson am 7 Jan. 2022
prctile()?
Malahat Mehraban
Malahat Mehraban am 7 Jan. 2022
No. For instance:
x1=85.36 and x2=73.52; I want to compare x1 and x2 and find that is the second one greater than 80% of x1 or not.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

DGM
DGM am 7 Jan. 2022
Your example arrays are identical, and I don't really know which one you're trying to compare to which. Consider the example using two arrays. Here, I use A as the reference, and test to see if the elements of B are greater than 80% of the corresponding elements of A.
A = 10*rand(1,10);
B = A - 2*rand(1,10);
bar([A.' B.'])
legend({'A','B'})
Bisgt80pA = B>(A*0.8)
Bisgt80pA = 1×10 logical array
1 0 0 0 0 1 1 0 1 1

Steven Lord
Steven Lord am 7 Jan. 2022
Is what you're trying to do as simple as just multiplication and relational operators?
x1=85.36;
x2=73.52;
x2 >= 0.8*x1
ans = logical
1

Image Analyst
Image Analyst am 7 Jan. 2022
Do you mean, if they're vectors:
logicalIndexes = x2 > (0.80 * x1); % or
linearIndexes = find(logicalIndexes);
Or if they're scalars.
result = x2 > (0.80 * x1) % Returns true or false.

Community Treasure Hunt

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

Start Hunting!

Translated by