MATLAB/Octave 不会缩短长数字

Posted

技术标签:

【中文标题】MATLAB/Octave 不会缩短长数字【英文标题】:MATLAB/Octave wont shorten long number 【发布时间】:2017-06-20 02:49:53 【问题描述】:

第一次使用 MATLAB。我在程序中有以下代码行:fprintf(' %f \n', theta);,结果为:54368060014147057099990006162582731726551435187805485739626788851124752751305908629414787531387170724584430890347208920495727355767424024576.000000 96634004613961676168033871650545168736179521715016065704930661265088994623792769400086691341222852173497032761334151797022979375128799175802329679263694848.000000 96634004613961604716879918495205400175451911092618320604570340258974396712180229146522112641753397515611983395520602911824055392738443597616851179928551424.000000

虽然我当前的格式设置为短,但它仍然会打印这些非常长的数字。我该怎么做才能让它打印出类似'5.4368e + 139'的东西?

类似问题here,但我不能使用VPA,因为我没有Symbolic Math Toolbox

【问题讨论】:

【参考方案1】:

因为它是fprintf,你应该修改它里面的数字表示。所以,你可以写:

fprintf('%.5e',theta);

【讨论】:

以上是关于MATLAB/Octave 不会缩短长数字的主要内容,如果未能解决你的问题,请参考以下文章

通过将数字分组到一个范围内在 matlab / octave 中绘图

如何从 GTK+2 C 代码中调用 matlab/octave 函数

ILNumerics 等效于 MatLab/Octave 语句

在线版 Matlab Octave

MATLAB/Octave 中的 LIBSVM - libsvmread 的输出是啥?

MATLAB / Octave:从图像中切出很多圆圈