2つの値の違いがわからない
21 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Kojiro Saito
il 5 Lug 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 Commenti
Kojiro Saito
il 7 Lug 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 )
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!