首页 文章

Matlab脚本.field函数停止工作

提问于
浏览
-1

我在Matlab中运行一些脚本,很长一段时间都很好 . 昨天似乎访问使用 xxx.fields 的结构的字段名称停止工作,这里显示了一个简化的示例代码

a.b.one = 1;
a.b.two = 2;
a.b.three = 3;
all_fields = fieldnames(a.b); % This works
all_fields = a.b.fields; % This used to work, it suddenly stopped working.

错误消息是 'Reference to non-existent field 'fields'.' ,而在某些计算机上 all_fields = a.b.fields; 仍然有效 .

我有几台机器有不同版本的Matlab(从2014a到2016a) . 这些代码几天前用于顺利运行,自去年以来没有人更改过该脚本 . 我们没有手动将任何更新/补丁应用于Matlab . matlab有一些自动更新功能吗?

使用 filednames 对我们有用,但它需要对我们现有的代码库进行大量的重写 .

任何帮助,将不胜感激 . 谢谢 .

1 回答

  • 1

    让我们停止谈论这个问题,它与MCVE无关 . 我在问题中发布的示例足以重现问题 .

    a.b.one = 1;
    a.b.two = 2;
    a.b.three = 3;
    all_fields = fieldnames(a.b); % This works
    all_fields = a.b.fields; % This used to work, it suddenly stopped working without upgrading Matlab
    

    对于 a.b.fields; 行,有些matlab实例可以正常工作,有些则不行 . 如果 all_fields = a.b.fields; 适合您,那么您可能没问题 . 为了使脚本适用于每个人,我们只需要将所有 all_fields = a.b.fields; 更改为 all_fields = fieldnames(a.b); ,并添加某些条件 .

    我只是为什么它在某些计算机上工作而感到困惑,但它在其他计算机上不起作用 . 如果这是一些深层次的Matlab引擎的东西,那么让我们关闭这个问题 . 谢谢你们的评论 .

相关问题