matlab中,编写传递函数,然后输出,但是小数的位数不够,试过format long等方法也不好使

如题所述

用format无法修改传函的输出格式。

 

由于tf输出的格式写死在程序中,所以不可能通过其他方式修改小数位数,如果一定要改,则需要直接修改控制系统工具箱中的m文件(一般来说,不建议修改系统自带的函数,请谨慎使用)。

 

不同版本的实现方式和组织形式可能存在差异,这里仅以两个版本为例进行说明。

    在R2008a上,修改这个文件: [MATLAB_ROOT]\toolbox\control\control\@ltipack\@tfdata\dispsys.m

    在R2012b上,修改这个文件: [MATLAB_ROOT]\toolbox\shared\controllib\engine\+ltipack\@tfdata\dispsys.m

其中[MATLAB_ROOT]为MATLAB的安装路径。

 

在文件中找到这一行(作为举例的两个版本,分别位于第141行和146行):

    form = '%.4g';

意思是系数的输出只保留4位有效数字,例如,你可以把它改成

    form = '%.8g';

就能输出8位有效数字了。当然,也可以改成

   form = '%.4f';

这种做法会强制保留4位小数。

温馨提示:答案为网友推荐,仅供参考