MATLAB:使用fprintf时出错没有为'sym'输入定义函数

时间:2015-03-16 19:51:19

标签: matlab printf

syms x;
y(x)=(-1/10)*(sin(x)+3*cos(x));

for i=2:1:N+1
    t=a+(i-1)*h;
    z=y(t);
    fprintf('\n\tx\t\ty\n')
    fprintf('%f %f\n',t,z) 
end

我将x声明为syms,因此我可以用它来表示一个函数。我现在的问题是当我想使用循环中的t值打印y值时,我得到一个错误,说fprintf没有在sym输入上定义。

1 个答案:

答案 0 :(得分:2)

使用fprintf占位符指定%s的符号输入,并使用char将其转换为字符。

例如:

fprintf('\n\t%s\t\t%s\n',char(x),char(y))

正如alexmogavero在answer to this question中指出的那样,您还需要将z的第二个fprintf符号输入转换为数值:

fprintf('%f %f\n',t,double(z))