2017-01-09 6 views
0

私はMATLABのAという配列で作業しています。この配列の値は、小数点以下5桁までです。これらの値を小数点以下の桁数に切り捨てたいと思います。変数を切り捨てるMATLAB

これを行う方法はありますか?

ありがとうございます!

+2

あなたが実際に低い精度を使用するか、単にそれを異なって表示するようにしたいですか? – excaza

+0

要約すると、何らかの理由で正確に精度を落としたい場合は、 'fix'、' round'、 'ceil'、' floor'を見てください。より簡潔に表示する場合は、 'format'を見てください。 –

答えて

1

、MATLABの "切り捨て" 機能がfixと呼ばれています。だから、

>> fix(3.5) 
ans = 3 

>> fix(-3.5) 
ans = -3 

、ラウンド、床を切り捨てる、または小数の特定の数には、何もCEIL、数十の力を掛け、切り捨てる、ラウンド、床、または切り上げ、その後、数十の力で結果を分割します。

ので:

>> fix(123.456 * 10^2) 
ans = 12345 

>> ans/10^2 
ans = 123.45 
+0

なぜ、丸めを実現するために、整数の丸めを 'fix'で使用し、逓倍と除算の回避策を使用するのか不思議ですか? MATLABは、指定された桁数に丸める完全に良い 'round'関数を持っています... – Wolfie

+1

質問は四捨五入ではなく切り捨てについてです。 'fix(3.7)'と 'round(3.7)'は異なる結果を出します。私が乗算と除算を使用したのは、 'fix'が精度の高い引数を取らず、古いバージョンのMatlabでは他の関数を実行しないためです。 – giusti

+0

正確な引数がないので '*'と '/'の使い方を理解しました... 'fix'と' round'を照会するだけですが、切り捨てと丸めについてのあなたの意見は公平です。 – Wolfie

3

丸め桁:

小数点以下2桁まで、例えば、roundを使用し、小数点以下の所定の数に値(又はマトリックス)を丸める...

round(1.2345, 2) 

ans = 1.2300 

ないも最初shortg

format shortg 

round(1.2345, 2) 

ans = 1.23 

形式にフォーマットを変更し、後続のゼロを表示するcompactでも同様の結果が得られますので、以下のドキュメントに基づいてニーズに合わせて最適なものを選択してください。

ドキュメント:

ラウンド:https://uk.mathworks.com/help/matlab/ref/round.html

フォーマット:何らかの理由でhttps://uk.mathworks.com/help/matlab/ref/format.html

関連する問題