Doubt in a product erro

1 vue (au cours des 30 derniers jours)
Nélio Dias
Nélio Dias le 2 Avr 2021
Hi, I have wrinting a code e get a 1×0 empty double row vector error
So, what I wrote:
t1 = 0:0.01:300;
pmenor = 25*0.9;
pmaior = 25*(1.1);
idx1 = find(t1== pmenor);
idx2 = find(t1 == pmaior);
I got
idx2 =
1×0 empty double row vector
But, if I write:
idx2 = find(t1 == 27.5);
idx2 =
2751
So I dont understand the error since idx1 gives me the correct answer, because we know that 25*1.1 = 27.5.
Thanks for reading.

Réponse acceptée

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 2 Avr 2021
Modifié(e) : Sulaymon Eshkabilov le 2 Avr 2021
Here is a small correction to obtain the correct answers in your exercise:
t1 = 0:0.01:300;
N = 2; % Number of decimal digits to be rounded, e.g.: N = 2 or 3 or 5, etc.
pmenor = round(25*0.9, N);
pmaior = round(25*(1.1), N);
idx1 = find(t1== pmenor);
idx2 = find(t1 == pmaior);
  2 commentaires
Nélio Dias
Nélio Dias le 4 Avr 2021
Thanks for the help.
Sulaymon Eshkabilov
Sulaymon Eshkabilov le 4 Avr 2021
You are welcome - it is a pleasure.

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 2 Avr 2021
The reason has to do with the accuracy of floating-point math on a binary computer. I suggest you read this question and answer, to get a better understanding of what is going on.
  1 commentaire
Nélio Dias
Nélio Dias le 4 Avr 2021
Thanks for the sugestion

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Object Programming dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by