Borrar filtros
Borrar filtros

How to compare two non-integer value together?

2 visualizaciones (últimos 30 días)
Malahat Mehraban
Malahat Mehraban el 7 de En. de 2022
Respondida: Image Analyst el 7 de En. de 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 comentarios
Walter Roberson
Walter Roberson el 7 de En. de 2022
prctile()?
Malahat Mehraban
Malahat Mehraban el 7 de En. de 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.

Iniciar sesión para comentar.

Respuestas (3)

DGM
DGM el 7 de En. de 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 el 7 de En. de 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 el 7 de En. de 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