在MATLAB中,改变数据精度一般使用 digits 和 vpa。方法如下:
digits %显示当前运算精度。
digits(n) %设定默认的精度。
vpa(x,n) %表示将s表示为n位有效数的符号对象。
如果不设定digits(n) ,系统默认为32位。
精度是表示观测值与真值的接近程度。每一种物理量要用数值表示时,必须先要制定一种标准,并选定一种单位 (unit)。这种标准的制定,通常是根据人们对于所要测量的物理量的认识与了解,并且要考虑这标准是否容易复制,或测量的过程是否容易 *** 作等实际问题。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。
MATLAB在编程中最常用的数据类型为双精度型,即double型
MATLAB可以简单定义数据,如:N=2;C=2+3i;N为实数,C为复数。
对于双精度数据,MATLAB可以用format函数来控制其显示格式,①format函数的调用格式如下所示:②format short 显示4位小数的定点数,如31416;③format longt 显示14位小数的定点数,如314159265358979;⑤format short e 显示4位小数的浮点数,如31416e+000;⑤format long e 显示14位小数的浮点数,如314159265358979e+000;⑥format short g 显示4位小数的浮点数或定点数,如31416;⑦format long g 显示14位小数的浮点数或定点数,如314159265358979; ⑧format hex 显示为十六进制数;⑨format rat 显示为有理数;
可用vpa()显示任意小数位的数据,a=314159265358979,vpa(a,5)=314159
在matlab中画完图,经常希望输出的图像清晰一些,分辨率高一些,以前一直在用file-->save as-->选择tif格式,然后点击确定。这样输出的图像清晰度是默认的,可能不能满足所需要的清晰度。
要想输出清晰度的图像,步骤如下:
File-->export setup,显示如下图所示对话框,然后点击Rendering,里面选择resolution,修改为600,点击export,选择输出格式,OK,即可。从您的提问中可以发现,您是有一定的Matlab基础的。
我建议您用round函数进行控制精度。延用您举的例子。为了书写方便,就设12356856为x。
取小数点后1位,round(x10)/10即可;
取小数点后2位,round(x100)/100即可;
依此类推,取小数点后n位,round(x10^n)/10^n即可;
取小数点前1位,round(x/10)10即可;
取小数点前2位,round(x/100)100即可;
依此类推,取小数点前n位,round(x10^(-n))/10^(-n)即可;
希望我的回答能够解答您的疑惑,谢谢。matlab读取数据时是不会降低数据的精度的,可能是你的显示精度设置过低
用format long试一下,matlab命令窗口默认是显示小数点后4位
不知道你的是否是这个问题用format 命令
比如 format rat ;% 分数形式显示
format short; %5字长定点数
forma long; %15字长定点数
format hex; % 16进制
ormat compact;%紧凑显示,压缩空格
format loose; % 疏松显示,包括空格和空行
具体挺多,可以 help format 看看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)