matlab:syms j, k=symsum(factorial(j),j,1,5)报错

时间:2021-04-21 22:49:40
matlab 2007 r:
syms j
k=symsum(factorial(j),j,1,5);
报错
然后尝试纠错:

syms j
k=symsum(maple('factorial',j),j,1,5);
运行成功。
如果把这个写进test.m文件里面
syms j
k=symsum(maple('factorial',j),j,1,5);
run test依然可以运行。
但是如果加上抬头
function k=test
syms j
k=symsum(maple('factorial',j),j,1,5);
直接运行test,就报错:
??? Undefined function or method 'symsum' for input arguments of type 'char'.

Error in ==> test2 at 3
k=symsum(maple('factorial',j),j,1,5);

为什么?
=================
相关的问题:
function k=test
syms j
f=sin(j);
k=symsum(f,j,1,5);
报错,我debug了一下,发现运行完f=sin(j)以后,f是一个实数,不是一个符号公式。为什么?

16 个解决方案

#1


帮顶!

#2


帮你顶

#3


该回复于2009-04-13 14:37:12被版主删除

#4


matlab的函数可以返回一个表达式吗?

#5


不懂,只能帮你顶一下。

#6


既然是fuction却没有输入变量应该写成这样:
function k=test(j) 
syms j 
f=sin(j) 
k=symsum(sin(j),1,5); 
结果是:
f =
sin(j)
ans =
sin(1)+sin(2)+sin(3)+sin(4)+sin(5)
 

#7


应该给j赋值的。。。

#8


帮顶~

#9


帮顶,看答案!

#10


帮顶

#11


引用 9 楼 michael_liuyong 的回复:
帮顶,看答案!

#12


求解决啊

#13


??? Undefined function or method 'symsum' for input arguments of type 'char'.
----------------------
symsum不接受字符串,接受一个符号表达式
你把maple('factorial',j)的结果写出来看看是什么,是不是返回一个字符串?

function k = test()
syms j
mp_result = maple('factorial',j) % print maple result
k=symsum(mp_result,j,1,5);
end


我debug了一下,发现运行完f=sin(j)以后,f是一个实数,不是一个符号公式。为什么?
------------------
这个问题是因为,在matlab中,i和j不要轻易用作变量,它们2个是复数表示符号,可能出现不可预知的结果
你用其他字幕就ok了,测试

>> syms w
>> f = sin(w)
f =
sin(w)
>> 

#14


matlab:syms j, k=symsum(factorial(j),j,1,5)报错

#15


factorial 貌似在符号运算里面不太好用,还是用gamma吧,factorial(n)=gamma(n+1)

#16


帮顶,看答案

#1


帮顶!

#2


帮你顶

#3


该回复于2009-04-13 14:37:12被版主删除

#4


matlab的函数可以返回一个表达式吗?

#5


不懂,只能帮你顶一下。

#6


既然是fuction却没有输入变量应该写成这样:
function k=test(j) 
syms j 
f=sin(j) 
k=symsum(sin(j),1,5); 
结果是:
f =
sin(j)
ans =
sin(1)+sin(2)+sin(3)+sin(4)+sin(5)
 

#7


应该给j赋值的。。。

#8


帮顶~

#9


帮顶,看答案!

#10


帮顶

#11


引用 9 楼 michael_liuyong 的回复:
帮顶,看答案!

#12


求解决啊

#13


??? Undefined function or method 'symsum' for input arguments of type 'char'.
----------------------
symsum不接受字符串,接受一个符号表达式
你把maple('factorial',j)的结果写出来看看是什么,是不是返回一个字符串?

function k = test()
syms j
mp_result = maple('factorial',j) % print maple result
k=symsum(mp_result,j,1,5);
end


我debug了一下,发现运行完f=sin(j)以后,f是一个实数,不是一个符号公式。为什么?
------------------
这个问题是因为,在matlab中,i和j不要轻易用作变量,它们2个是复数表示符号,可能出现不可预知的结果
你用其他字幕就ok了,测试

>> syms w
>> f = sin(w)
f =
sin(w)
>> 

#14


matlab:syms j, k=symsum(factorial(j),j,1,5)报错

#15


factorial 貌似在符号运算里面不太好用,还是用gamma吧,factorial(n)=gamma(n+1)

#16


帮顶,看答案