Matlab怎么修改显示数值格式/精度/小数位数
问题描述如下: matlab命令窗口中显示的数值默认只是4位小数,最后一位采用四舍五入。
在计算中精度要求可能会更高,如果要修改显示的小数位数,需要操作一下,matlab2013以前的版本请看
度娘Matlab链接
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
matlab代码在调试的过程中,鼠标悬浮到变量上即可看到变量的值。
类似矩阵和数组,可以像C++那样打印出来。
使用disp 函数来 打印变量的值
fprintf('最终的输出结果,到此程序结束\n')
disp(msgstnr)
- 1
- 2
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);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
【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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
下面写一点最近实习心得:
leader给的任务是把 一个小工具 matlab 代码移植到 C++ ( 因为 matlab 太慢了,没办法配合其他步骤 部署到服务器中运行)
接到任务第一反应:我经历了什么,matlab 根本没写过代码呀,C++已经是3年前上课时候学习的东西了,请原谅无知的我被蒙蔽了双眼,根本不知道这个任务该如何完成,更不知道这个任务对我成长而言有什么意义。
经历了几天内心的抗拒和针对目前工作状况等一系列因素的权衡,觉得leader把这个任务交给我自然会有leader的考虑,还是要认真做下去的。
于是开始着手调试程序,刚开始正向看代码,发现看不懂的地方太多了,后来醒悟。
根据最终输出结果自下而上的寻找与结果相关的变量和方法,以此类推,渐渐的对代码的计算方法才有了整体的认识,知道了这些代码是这样的一个过程,相当于从结果出发梳理了matlab代码关键的变量和方法,里面有很多对于我的需求无效的代码就给排除掉了,因为这些正向看的时候很难看出来和我最终结果有没有关系。
所以针对这种代码量较大,一头雾水的代码,很多时候从最终结果出发,反向路由,更容易理清解决思路,然后再针对相关变量和方法 一 一 理解并复写C++的方法进行移植。
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/83094346
- 点赞
- 收藏
- 关注作者
评论(0)