Matlab怎么修改显示数值格式/精度/小数位数

原文链接:Matlab怎么修改显示数值格式/精度/小数位数
问题描述:
如图,matlab命令窗口中显示的数值默认只是4位小数,最后一位采用四舍五入。
在计算中精度要求可能会更高,如果要修改显示的小数位数,需要操作一下,matlab2013以前的版本请看原文链接(最上方)

format short :控制输出结果为5位精度,即小数点后4位。matlab提供了format命令,
用于控制输出结果的显示精度,而不会影响变量的存储和运算精度。其中常用的format命令有:

format short:显示5个字长的数字(小数点后4位)

format long:双精度数显示15位精度,单精度数显示7位精度

format rat:分数形式表示

format short e :将数值都用科学计数法表示,保留五位有效数字
matlab里面输入以上命令即可,像这样:
>>format long
若想改回来就是:
>>format short

matlab代码在调试的过程中,鼠标悬浮到变量上即可看到变量的值。
类似矩阵和数组,可以像C++那样打印出来。
使用disp 函数来 打印变量的值

  fprintf('最终的输出结果,到此程序结束\n')
  disp(msgstnr)

Matlab输出变量到文本:
原文链接:matlab 文件输出到text文件总结

  % 新增代码输出 dn 到文件查看
  % dn 是一个  10000 * 1 的数组,或者说矩阵
  % 执行 format long 之后 , dn 的实际可见精度位为 16位
  %disp(dn)
  fid = fopen('H:\noise\weveRead\dn.txt','wt');
  fprintf(fid,'%g\n',dn);   
  fclose(fid);

【matlab】round函数的用法

round函数用于舍入到最接近的整数。语法形式只有1种:Y = round(X),这里的X可以是数,向量,矩阵,输出对应。

举例:

1、round(2.1) = 2; round(2.5) = 3; round(2.8) = 3

2、round(-2.1) = -2; round(-2.5) =  -3; round(-2.8) = -3

3、 >> A = [2.3 4.7 -2.3 -4.7]
  A = 2.3000    4.7000   -2.3000   -4.7000
   >> round(A)
          ans =  2     5    -2    -5

4、>> A = [2.1 4.7 8.9; 3.4 5.6 7.1; -9.8 -3.4 -2.5]
  A =
   2.1000    4.7000    8.9000
   3.4000    5.6000    7.1000
  -9.8000   -3.4000   -2.5000
   >> round(A)
  ans =
                  2     5     9
                  3     6     7
                -10    -3    -3

下面写一点最近实习心得:
leader给的任务是把 一个小工具 matlab 代码移植到 C++ ( 因为 matlab 太慢了,没办法配合其他步骤 部署到服务器中运行)
接到任务第一反应:我经历了什么,matlab 根本没写过代码呀,C++已经是3年前上课时候学习的东西了,请原谅无知的我被蒙蔽了双眼,根本不知道这个任务该如何完成,更不知道这个任务对我成长而言有什么意义。
经历了几天内心的抗拒和针对目前工作状况等一系列因素的权衡,觉得leader把这个任务交给我自然会有leader的考虑,还是要认真做下去的。
于是开始着手调试程序,刚开始正向看代码,发现看不懂的地方太多了,后来醒悟。
根据最终输出结果自下而上的寻找与结果相关的变量和方法,以此类推,渐渐的对代码的计算方法才有了整体的认识,知道了这些代码是这样的一个过程,相当于从结果出发梳理了matlab代码关键的变量和方法,里面有很多对于我的需求无效的代码就给排除掉了,因为这些正向看的时候很难看出来和我最终结果有没有关系。
所以针对这种代码量较大,一头雾水的代码,很多时候从最终结果出发,反向路由,更容易理清解决思路,然后再针对相关变量和方法 一 一 理解并复写C++的方法进行移植。

你可能感兴趣的:(matlab)