展开全部
digits+vpa 方法
该方法是用digits()设定运算精度,然后用vpa获得所要的小数位数。该方法可636f70793231313335323631343130323136353331333431356566以达到获取需要的任意位小数,但弊端很多
运算精度里包含了整数部分,所以需要提取整数部分和分数部分,并计算整数部分的位数,以下程序中求len就是整数位数。获得的结果是符号型,符号型的运算速度要比数值慢上很多。
format long
a = input('please give a number which will be changed£º');
n = input('how many decimal digits will you keep: ');
num = floor(a);
str = num2str(num);
len = length(str);
err = a-num; % 获取小数部分
digits(n+len); % 此处为需要的小数位 + 整数位数
need_num = num+vpa(err,n+len); %%%% 获得按要求保留的小数,但获得的是符号性
need_str = num2str(double(need_num)) %%%%% 符号型转浮点型,再转字符型
运行结果:
please give a number which will be changed:3.1415926
how many decimal digits will you keep: 2
need_str =3.14
扩展资料:
MATLAB 产品族可以用来进行以下各种工作:
数值分析
数值和符号计算
工程与科学绘图
控制系统的设计与仿真
数字图像处理技术
数字信号处理技术
通讯系统设计与仿真
财务与金融工程
管理与调度优化计算(运筹学)
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题