所以假设我想以1/9+1/13精确的分数形式计算.由于两个数字都是合理的,因此可以得到分数形式的精确结果.但是当我输入1/9+1/13Matlab时,结果始终是十进制近似值.
我如何获得准确的分数形式?
Matlab主要是一个数字环境,因此默认使用浮点数.通常,您需要使用符号数学工具箱来实现您所描述的内容.就你的例子而言:
sym('1/9')+sym('1/13')
Run Code Online (Sandbox Code Playgroud)
回报22/117.
或者,您可以尝试rats使用浮点输入的(有理分数近似)函数:
rats(1/9+1/13)
Run Code Online (Sandbox Code Playgroud)
返回字符串'22/117'.还有rat将分子和分母作为单独的浮点输出返回.
[n,d] = rat(1/9+1/13)
Run Code Online (Sandbox Code Playgroud)
分别返回22和117for n和d.