2つの値の違いがわからない
11 views (last 30 days)
Show older comments
Aとstartの中身が私には同じに見えますが、同様の処理をしても結果が異なります。
なぜこのような違いが生じるのかご教示いただければ幸いです。
load('A.mat')
A
load('start.mat')
start
load('B.mat')
C = find(B == A(1));
C
D = find(B == start(1));
D
0 Comments
Accepted Answer
Kojiro Saito
on 5 Jul 2022
出力の表示形式で値が丸め込まれて見えているのが原因です。
こちらのドキュメントに詳細がありますが、MATLABではデフォルトでshortの表示形式なので、小数点以下が4桁の固定小数点形式で表示されます。
実はA(1)とstart(1)では同じ値になっていません(A(1) == start(1)がfalseの0になります)。
load('A.mat')
A(1)
load('start.mat')
start(1)
A(1) == start(1)
桁数を増やして表示すると、A(1)とstart(1)で値が違っているのが確認できます。
format long
A(1)
start(1)
6 Comments
Kojiro Saito
on 7 Jul 2022
以下はroundを使ってみた例です。
tind = [1:10000]/1000;
tindA = tind +0.01;
A = 8.271;
B = find(round(tind, 3) == A )
C = find(round(tindA, 3) == A )
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!