如何用Octave绘制3个变量的函数?

时间:2017-09-04 20:51:36

标签: matlab octave

我是Octave(和matlab)的新手。我有一个看起来像这样的功能

enter image description here

我想画g(x,0.5,5)说。

这是我在Octave尝试的内容

我定义了一个匿名函数

f=@(n,x,t) 1./n.*log(n.*pi.*t).*sin(n.*pi.*x);

然后是另一个匿名函数

g=@(m,x,t)x.^2+sum(f([1:m],x,t));

最后定义

x=-1:0.1:1;
plot(x,g(5,x,0.5))

但是我收到了错误。这是绘制此功能的正确方法吗?我必须做一个简单的初学者错误吗?

1 个答案:

答案 0 :(得分:3)

当您致电f(n,x,t)时,您传递n的1 x 5矢量和x的1 x 21矢量。它们具有不同数量的元素,因此不能逐个元素地相乘。但是,您可以重写f以适应每个向量,并使用矩阵乘法从g执行求和:

f = @(n, x, t) (1./n.*log(n.*pi.*t))*sin(pi.*n(:)*x);
g = @(m, x, t) x.^2 + f(1:m, x, t);

现在你的情节将起作用:

x = -1:0.1:1;
plot(x, g(5, x, 0.5));

enter image description here