在matlab中绘制两个函数的组合

时间:2014-10-09 16:54:34

标签: matlab octave matlab-figure

我无法在matlab中理解我的代码有什么问题:

syms t
x=[1 2 3];
g=t*t;
f=sin(x);
y=compose(g,f);
plot(x,y,'o')

我编写的这段代码用于绘制y = sin(x)^ 2。由于我的计算机中没有matlab,所以在Octave在线编译器上运行它,它给出了错误'syms' undefined near line 1 column 1

如果有人可以帮忙解释我在代码中哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

您似乎没有安装符号数学工具箱,因此您无法使用compose。虽然有一种解决方法。请记住,调用compose(f,g)时两个函数的组合使我们返回f(g(y))f = f(x)的{​​{1}}。

你可以做的是用数字绘制,而不依赖于g = g(y)。声明一个数字时间向量,例如......从symst = 0,步长为t = 5。之后,声明自己的函数句柄,它将计算每个函数。函数句柄或匿名函数是小的单行函数,通常是数学或计算语句,可以接受任何大小的输入,无论是单个值,向量还是矩阵,并将该计算语句应用于输入中的每个值。您通过0.01符号表示匿名函数,然后在圆括号内指定将要计算的语句组成的变量。在这种情况下,只有一个变量,我们称之为@,但它可以是任何变量。

因此,我定义了一个函数t,它对输入中的每个元素执行g。请注意,我必须逐个元素操作。如果我们只是t^2,我应该提供向量还是矩阵,这将被解释为矩阵乘法,这不是你想要的。同样,我们定义一个匿名函数t*t,使其生成f作为输出。

通过这些定义,您真正需要做的就是:

sin(t)