【问题标题】:Problem Creating a struct within my script in Matlab在 Matlab 中的脚本中创建结构时出现问题
【发布时间】:2020-06-02 15:01:30
【问题描述】:

我正在尝试将一个变量写入一个结构并从另一个现有结构中读取它:

struct1.vector = struct2.matrix(:,1);

当我在脚本中运行这一行时,它将创建一个双变量 struct1。这就是为什么我会收到错误:

无法执行赋值,因为这种类型的变量不支持点索引。

当我在命令行窗口中运行同一行时,它会按照我的意愿创建一个结构变量 struct1。还有多行,我尝试写入 struct1 ,有时前 4 行有效,而第 5 行无效。 我不明白为什么脚本会创建一个替身,有人可以帮我解决这个问题吗?

非常感谢您的帮助,谢谢。

【问题讨论】:

标签: matlab struct


【解决方案1】:

这可能意味着您的工作区中已经有一个名为 struct1 的变量,该变量是以前的活动遗留下来的,或者是在脚本之前分配的。

在运行脚本之前,您可以通过调用clear 来确保您拥有一个全新的工作区。更好的是,把你的脚本变成一个函数,它就会有自己的工作区。

您还可以将整个 struct1 变量替换为一个新的空结构,以确保它的类型正确,然后再分配给它的字段。

struct1 = struct;
struct1.vector = struct2.matrix(:,1);

【讨论】:

  • 我刚试了下,还是报错。没有其他同名结构。
  • @downbydawn:这是不可能的,请在您的问题中发布minimal reproducible example,以便我们可以看到您到底在做什么。
  • 我发现一个变量意外地以相同的方式分配,更改它现在可以工作了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-18
  • 2011-02-20
  • 2021-01-19
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
相关资源
最近更新 更多