すべてのボディは、このMATLABプログラムで私を助けることができる

B

bavamurali

Guest
B = 90030021003000000;;するwhile(iの私のMATLABプログラムは、i = 90030021002145212このようなものです
 
あなたの初期値が大きすぎると、この場合には1つの増分は不可能です。デフォルトでは、MATLABは、倍精度浮動小数点を使用して、浮動小数点表現の限界がある。浮動小数点数は、指数関数的な方法で保存されますので、一度に非常に小さな値(正確な数)を表すことができ、別の時には非常に大きな値(広い範囲)を表すものではなく、両方の大規模な範囲と正確な数値が得られないことができ同じ時間。あなたは非常に小さなもので、非常に大きな値を追加すると、少数は無視されます。あなたは1の増分をしたい場合は、小さい初期値を試してみてください。
 
ご返信いただきありがとうございますが、プログラムの中で、私は大きな値を使用する必要がありますが1でそこに大きな値をインクリメントするのいずれかの方法であり、
 
2数値を減算し、その差実行:[コード] K =双方向あり、k = 0;するwhile(nを
 
MATLABは、使用可能ないくつかの重要な形式を持っています。 MATLABコマンドウィンドウタイプ>>形式で長い間、このモードでは、大きめの数値を使用することができます。詳細については、形式のヘルプファイルをお読みください。
 
この作業を行います。それは私が64ビット整数がサポートされていると思うのバージョンを最新にしない私の古いMATLAB上ではなく、最大で行います。 I = uint64の(90030021002145212)と、b = uint64の(90030021003000000)、しばらく(I
 
あなたはそのルートを移動したい場合は、[引用]いかなる演算機能はUINT64。[/引用]のために定義されませんので、uint64に役立つから独自の演算子を定義する必要があります。
 
はい、私はあなたたちに同意する。これは、64ビット整数を使用することによって解決することができますが、MATLABはuint64のための数学をサポートしていないため、自分で+演算子を定義する必要があります。しかし、私は別の問題を発見した。私は、MATLABコマンドウィンドウでこれを試して、不正確な値が見つかりました:[コード] I = uint64の(90030021002145212)はi = 90030021002145216 [/CODE]我々はuint64の(何か)を宣言すると、MATLABは、大きな値で悪い精度を持っている二重の元の番号を保存、整数フォーマットにキャストします。私はC言語でそれらのコードを書くことが容易になりますね。
 

Welcome to EDABoard.com

Sponsor

Back
Top