【问题标题】:How to plot a bode_gain inside the wxmaxima GUI?如何在 wxmaxima GUI 中绘制 bode_gain?
【发布时间】:2021-11-24 20:54:47
【问题描述】:

我无法在 wxmaxima 的 GUI 内绘制 bode_gain,我知道例如,“wxplot”在 GUI 内绘图,但将前缀放在 bode_gain 函数上对我不起作用,所以

有人可以告诉我如何在 wxmaxima GUI 中绘制 bode_gain 函数而不是使用新的图形窗口来帮助我吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 了解如何提高问题的质量。然后edit你的问题包括你的源代码作为工作minimal reproducible example,它可以被其他人编译和测试。请参阅:Why is “Can someone help me?” not an actual question?.
  • 为了阅读本文的人们的利益:问题是bode_gain 自己调用了一些绘图函数,而不是制作嵌入式绘图的函数。让我看看如何修复它以制作嵌入式绘图。

标签: wxmaxima


【解决方案1】:

在查看代码 (share/contrib/bode.mac) 时,我发现没有规定可以调用不同的绘图函数,它始终是内置的 plot2d。对于 wxMaxima 来说,能够使用 wxplot2d 非常好,因为它可以生成嵌入式图。

这是一种替换plot2d 定义中bode_gainbode_phase 的调用的方法。

load ("bode.mac");
''(subst (plot2d = wxplot2d, fundef (bode_gain)));
''(subst (plot2d = wxplot2d, fundef (bode_phase)));

注意前两个字符是两个单引号,而不是双引号。引用引用'' 的作用是根据fundef 返回的现有函数定义评估由subst 构造的修改后的函数定义。

另一种方法是在您的安装中找到 bode.mac,然后将文件编辑为 wxplot2d 而不是 plot2d,无论后者出现在哪里。

我将更新 bode.mac 以便更容易更改绘图功能,并且新版本将出现在 Maxima 的未来版本(5.46 是下一个版本)中。

【讨论】:

  • 非常感谢@Robert Dodier,您的回答完美无缺。我不知道为什么,但是我在安装目录中搜索特定功能,而不是寻找 bode.mac 文件;无论如何,我对最大值编程的了解不足以改变功能,所以我可能会花很多时间来改变行为,谢谢大师班。
  • 我很高兴听到它对您有用。 Maxima 是一种特殊的编程语言,但它擅长的一件事是事后编程。 bode.mac 不允许调用不同的绘图函数是一个疏忽,但幸运的是,Maxima 使它相对容易解决。作为记录,我已经推送了一个提交以建立一个全局变量bode_plot2d,默认为plot2d,可以更改为wxplot2d。该更改将成为下一个 (5.46) Maxima 版本的一部分。
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
相关资源
最近更新 更多