【问题标题】:How to plot function of 3 variables with Octave?如何用 Octave 绘制 3 个变量的函数?
【发布时间】:2017-09-05 05:11:46
【问题描述】:

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

我想绘制 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))

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

【问题讨论】:

  • 您正在使用f(n,x,t)f(1:5, -1:0.1:1,0.5),即n 有5 个元素,x 有21 个元素,它们不能以任何方式相乘,因此会出现错误

标签: matlab octave


【解决方案1】:

当您调用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));

【讨论】:

    猜你喜欢
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多