编写解决拉普拉斯和其他东西的.m类

时间:2011-03-04 04:08:25

标签: matlab

我正在写m。如果我在命令窗口中输入此文件,将执行以下操作:

>> test
Enter the function: (s^2+6*s+9)/(s^3+2*s^2-s-2)
The Poles:
 -2
 -1
  1

The Zeros:
 -3
 -3

The Result:
1/(3*exp(2*t)) - 2/exp(t) + (8*exp(t))/3

The Initial Value:
  1

这是我的尝试:(当然,它不起作用)

function y = f(s)
y = input('Enter the function: ');
[n d] = numden(y);
zeros = solve(n);
poles = solve(d);
yt = ilaplace(y);
disp('The Poles:');
disp(poles);
disp('The Zeros:');
disp(zeros);
disp('The Result:');
disp(yt);
disp('The Initial Value:');
disp(f(0));

1 个答案:

答案 0 :(得分:2)

Matlab中的函数与大多数编程语言中的函数类似:它们需要输入参数列表并返回输出参数列表:

function [out1 out2] = myFunc(in1, in2)

在您的示例中,函数f返回用户输入 - 您想要的是什么?此外,输入参数x从未使用过,因此无用。如果既不使用输入参数也不使用输出参数 - 那么为什么要使用函数呢?您可以使用Matlab脚本。

在函数体中,您使用的变量func从未定义过。你期望它有什么价值?我想你想将用户输入传递给函数numden,它需要一个数字或符号矩阵。您必须将用户输入转换为numden所理解的内容。请注意,如果您想获取用户输入的字符串,则必须使用带有's'的选项input,否则用户输入将被解释为Matlab表达式。