2つの値の違いがわからない
8 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Kojiro Saito
2022 年 7 月 5 日
出力の表示形式で値が丸め込まれて見えているのが原因です。
こちらのドキュメントに詳細がありますが、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 件のコメント
Kojiro Saito
2022 年 7 月 7 日
以下はroundを使ってみた例です。
tind = [1:10000]/1000;
tindA = tind +0.01;
A = 8.271;
B = find(round(tind, 3) == A )
C = find(round(tindA, 3) == A )
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!