matlab保留小数点后两位.比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.能不能像fortran一样类似write(xx,'(f4.2)')

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 03:20:05
matlab保留小数点后两位.比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.能不能像fortran一样类似write(xx,'(f4.2)')

matlab保留小数点后两位.比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.能不能像fortran一样类似write(xx,'(f4.2)')
matlab保留小数点后两位.
比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.
能不能像fortran一样类似write(xx,'(f4.2)')

matlab保留小数点后两位.比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.能不能像fortran一样类似write(xx,'(f4.2)')
这个问题我以前也回答过,matlab里面好像只能对总的有效位数进行控制,只对小数的话目前没有太好的办法.有些方法是可以用的,就是太复杂了,比如说
方法1:digits+vpa 方法
该方法是用digits()设定运算精度,然后用vpa获得所要的小数位数.该方法可以达到获取需要的任意位小数,但弊端很多,其1,运算精度里包含了整数部分,所以需要提取整数部分和分数部分,并计算整数部分的位数,以下程序中求len就是整数位数.其2,获得的结果是符号型,符号型的运算速度要比数值慢上很多.
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
方法2:round 函数法
该方法为先将要保留的部分转成整数,即切除不要的尾部,然后再恢复成所要的相应小数.该方法最为简洁,但不可恢复.
format long
a = input('please give a number which will be changed:');
n = input('how many decimal digits will you keep:');
b = a*10^n;
aa = round(b);
need_num = aa/10^n; %%%%% 先化成整数,再转成小数
need_str = num2str(need_num)
运行结果:
please give a number which will be changed:pi
how many decimal digits will you keep:2
need_str =
3.14
方法3:直接转成字符串,再取需要位数
该方法是直接转成需要的字符串,再截取所要的小数位.缺点是连四舍五入都没有,直接截断尾部.
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);
str1 = num2str(a);
need_str = str1(1:(len+n+1)) %%%取需要的长度,这里需要加上整数长和小数点1位
运行结果:
please give a number which will be changed:pi
how many decimal digits will you keep:2
need_str =
3.14
方法4:fprintf方法
该方法仅仅只是输出显示,并无法达到转成字符的效果.而且无法动态控制.
a = input('please give a number which will be changed:');
n = input('how many decimal digits will you keep:');
fprintf('a = %3.2f\n',a) %%%%3.2f中.2就是小数位数
运行结果:
please give a number which will be changed:pi
how many decimal digits will you keep:2
a = 3.14

这个你可以先弄成表格再转嘛

a=4;
b=3;
digits(5)
y=vpa(a/b)

可用vpa(x,n) 来控制有效位数显示
a=pi;sprintf('%10.1f',a)
sprintf输出来的是char array
ceil/fix/floor/round是处理去小数的函数
让小数点之后保留一位, 试试
a=pi; aa=round(10*a)/10
是你想要的吗?

matlab保留小数点后两位.比如将1变成1.00,因为需要在循环中控制文件路径,所以在程序运行过程中就需要转换,并不是控制输出格式.能不能像fortran一样类似write(xx,'(f4.2)') 保留小数点后两位,但小数点后第二位是9怎么办比如,6,.796 保留两位小数的结果是? matlab将一个矩阵输出,保留小数点后三维有效数字比如>> rand(3,4)ans=0.1256 0.6794 0.6173 0.59910.0946 0.2436 0.1978 0.64410.3964 0.5908 0.0595 0.6085如果只想保留三位有效数字输出,自己写个函数当然可以.题目中 关于C语言保留小数点后两位的问题谢谢了,比如%6.2 我知道 .2 表示小数点后两位 MATLAB中保留小数点位数问题MATLAB中怎样将数据位数保留到小数后几位保存到excel文档中.(注:在excel文档中小数位数不超过6位) 正则表达式大于0.9小于1保留小数点后两位 VB:写表达式:将x的值四舍五入,保留小数点后两位 c++如何将计算结果按四舍五入保留小数点后两位小数输出 matlab用二分法求方程的近似根,保留小数点后四位有效数字.用matlab编程. 如何在MATLAB中实现小数点后保留2位.不是只要输出形式变为小数点后两位即可,因为后面的计算中还要用到这个保留到小数点后2位的数.下面是我的程序,要求num和den成为保留小数点后2位的数字 excel表格的取整公式比如A1为100.23789,我需要小数点后两位,取整公式是什么是取整,不是保留小数点后两位那么简单哈 保留小数点后两位有效数字 一般的我会,特殊的比如0.0013 从小数点后第一位算不算有效数字? 在Excel中怎样保留小数点后两位? 保留小数点后两位45.4545454545结果是多少啊 在C#中,怎么保留小数点后两位 小数点后面保留4位或保留6位要进位的话加1吗?比如:43.3241569这样的给怎样进位 在Excel中怎么设置保留小数点的位数,比如保留5位怎么设置 如何把小数点保留一位并且小数点大于等于0.5进1,小于0.5变0.5 如:12.54=13 12.8=13 12.32=12.5 12.5=13如何把小数点保留一位并且小数点大于0.5进1,小于0.5变0.5如:12.54=1312.8=1312.32=12.512.5=13有没有其他的