Jim0R 2023-05-12 10:00 采纳率: 0%
浏览 145

Matlab app designer 显示函数或变量 eval无法识别

在一个buttonpushed时间里调用了eval 报错如标题

  • 写回答

3条回答 默认 最新

  • Leodong. 2023-05-12 10:04
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在MATLAB App Designer中,不能直接使用eval函数来执行字符串形式的MATLAB代码,因为MATLAB App Designer使用了不同的代码执行方式。如果直接使用eval函数,会报错提示eval函数无法识别。

    为了在MATLAB App Designer中执行字符串形式的MATLAB代码,可以使用以下两种方法:

    方法一:在App Designer中使用evalin函数

    evalin函数可以在指定的工作区中执行字符串形式的MATLAB代码。因此,在MATLAB App Designer中,可以使用evalin函数来执行字符串形式的MATLAB代码。例如,可以在buttonpushed事件中使用以下代码:

    code = "a = 1 + 2";
    evalin('base', code);
    

    以上代码可以将字符串"1 + 2"作为MATLAB代码执行,在base工作区中创建变量a,并将其值设置为3。

    方法二:在App Designer中使用feval函数

    feval函数可以在指定的工作区中调用指定的函数。因此,在MATLAB App Designer中,可以使用feval函数来调用字符串形式的MATLAB函数。例如,可以在buttonpushed事件中使用以下代码:

    func = str2func('max');
    a = 1;
    b = 2;
    c = 3;
    result = feval(func, a, b, c);
    

    以上代码可以调用MATLAB内置函数max,并将变量a、b、c作为参数传递给该函数,最终返回三个参数中的最大值。

    以上两种方法均可以在MATLAB App Designer中执行字符串形式的MATLAB代码。需要注意的是,evalin函数和feval函数都需要指定工作区,以确保代码执行的正确性。同时,也需要注意evalin和feval函数的安全性问题,避免因为执行不当导致潜在的安全问题。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 5月12日

悬赏问题

  • ¥15 思科模拟器Router c3600 NM-4E
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
  • ¥15 electron 如何实现自定义安装界面