Doubt in a product erro

1 回表示 (過去 30 日間)
Nélio Dias
Nélio Dias 2021 年 4 月 2 日
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.

採用された回答

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 4 月 2 日
編集済み: Sulaymon Eshkabilov 2021 年 4 月 2 日
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 件のコメント
Nélio Dias
Nélio Dias 2021 年 4 月 4 日
Thanks for the help.
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 4 月 4 日
You are welcome - it is a pleasure.

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

その他の回答 (1 件)

the cyclist
the cyclist 2021 年 4 月 2 日
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 件のコメント
Nélio Dias
Nélio Dias 2021 年 4 月 4 日
Thanks for the sugestion

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

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by