【问题标题】:A Maple equivalent for Matlab's input functionMatlab 输入函数的 Maple 等价物
【发布时间】:2013-11-28 07:57:24
【问题描述】:

我是 Maple 的新手,我确实需要 Matlab 的 input() 函数。我进行了很多搜索,但没有简单的方法或至少像 Matlab 这样直接的方法来获取输入。 实际上我需要的是一种在 Maple 中从用户那里获取函数定义的方法。 如果有人帮忙,我会很高兴:)

例如(Matlab 代码)

f = input("Enter your function : ");

输出:

输入你的函数:x^2 + y^2 + log(10) + 2*exp(z)

我要问的是如何在 Maple 中实现类似 Matlab 代码的东西?

【问题讨论】:

  • 我对 Maple 一无所知,但this page 暗示它在某种程度上支持scanf

标签: matlab maple


【解决方案1】:

使用readstat 命令怎么样?例如,

restart:

f := readstat("Enter your function:");

可以从Maplets 代码设计一个更复杂的弹出窗口。作为 Maplets 的一个简单示例,

restart:

maplet:=Maplets:-Elements:-Maplet(
      Maplets:-Elements:-InputDialog["ID1"](
         "Enter your function:",
         ':-onapprove'=Maplets:-Elements:-Shutdown(["ID1"]),
         ':-oncancel'=Maplets:-Elements:-Shutdown())):

f:=parse(Maplets:-Display(maplet)[]);

您没有说明最终用户将如何与会话进行交互。用户会运行整个工作表吗?您是否考虑过使用Embedded Components 制作一个完整的交互式程序集?

【讨论】:

  • 谢谢,看来我必须在readstat()之后使用f:=unapply(f,x,y,...),对吧?有什么方法或者更简单的方法可以避免这个阶段吗?
  • 回答readstat时可以输入x->x^2-x-1之类的运算符,也可以输入x^2-x-1之类的表达式。如何将表达式转换为运算符应该作为一个完整的问题在新线程中提出,因为它与 readstat、scanf 或您上面提出的问题本质上没有任何关系。你可以简单地做到这一点,例如。 f:=unapply(readstat("enter an expression in x:"),x); 或者您可以在新线程中询问如何获得幻想并使其使用 indets 来可靠地确定要取消应用的不确定名称等。
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2019-12-15
  • 1970-01-01
  • 2021-11-02
  • 2016-09-18
相关资源
最近更新 更多