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

How to plot function of 3 variables with Octave?

我是 Octave(和 matlab 相关)的新手。我有一个看起来像这样的函数

我想绘制 g(x,0.5,5) say。

这是我在 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))

但是我得到一个错误。这是绘制此函数的正确方法吗?我一定是犯了一个简单的初学者错误?

当您调用 f(n,x,t) 时,您为 n 传递了一个 1×5 向量,为 x 传递了一个 1×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));