2つの値の違いがわからない
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Kojiro Saito
am 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 Kommentare
Kojiro Saito
am 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 )
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!