- 主题:matlabFunction一问,多谢!!
用matlabFunction将符号表达是转换为函数,总是将分数、无理数变成了小数形式,不知道有没有办法避免这种情况。例如,以下这一小段代码。
syms a
density=a*sym(pi)/sym(2);
fun=matlabFunction(density)
A=int(fun,'a',sym(1), sym(2) )
运行后得到的是长长的一大串:A =2.3561944901923449288469825374596。
有没有办法得到分数形式呢,至少,pi别变成小数?
谢谢!!
--
FROM 36.128.129.*
format rat
【 在 argye (天行健) 的大作中提到: 】
: 用matlabFunction将符号表达是转换为函数,总是将分数、无理数变成了小数形式,不知道有没有办法避免这种情况。例如,以下这一小段代码。
: syms a
: density=a*sym(pi)/sym(2);
: ...................
--
FROM 112.47.159.*
谢谢。可是,不管用啊。
【 在 zszqzzzf 的大作中提到: 】
: format rat
--
FROM 36.128.129.*
>> format rat;
>> a=0.25
a =
1/4
>> pi
ans =
355/113
【 在 argye (天行健) 的大作中提到: 】
: 谢谢。可是,不管用啊。
--
FROM 112.47.159.*
pi 出不来。还有别的办法吗?谢谢!
【 在 zszqzzzf 的大作中提到: 】
: >> format rat;
: >> a=0.25
: a =
: ...................
--
FROM 36.128.129.*
首先,这种情形下没必要使用matlabFunction。
syms a
density=a*sym(pi)/sym(2);
A=int(density,sym(1), sym(2) )
即可。
其次如果你非要显示pi,可以syms pi.其实,你可以折中一下,把Pi声明称符号变量。
syms a pi
density=a*pi/sym(2);
A=int(density,a,sym(1), sym(2) )
【 在 argye 的大作中提到: 】
: 用matlabFunction将符号表达是转换为函数,总是将分数、无理数变成了小数形式,不知道有没有办法避免这种情况。例如,以下这一小段代码。
: syms a
: density=a*sym(pi)/sym(2);
: ...................
--
FROM 36.130.176.*
好的,多谢!!!
【 在 dlmaple 的大作中提到: 】
: 首先,这种情形下没必要使用matlabFunction。
: syms a
: density=a*sym(pi)/sym(2);
: ...................
--
FROM 36.128.129.*