我正试图将一个变量写入一个结构中,并从另一个现有结构中读取:
struct1.vector = struct2.matrix(:,1);
当我在脚本中运行这一行时,它将创建一个双变量struct1。这就是为什么我会得到错误:
无法执行赋值,因为此类型的变量不支持点索引。
当我在命令窗口中运行同一行时,它会按照我的意愿创建一个结构变量struct1。还有多行,我试图在其中写入struct1,有时前4行有效,第5行无效。我不明白剧本为什么要造替身,有人能帮我吗?
非常感谢您的帮助,谢谢。
这可能意味着您的工作区中已经有一个名为struct1
的变量,要么是以前某个活动遗留下来的,要么是在脚本的早期分配的。
在运行脚本之前,您可以通过调用clear
来确保您有一个新的工作区。更好的是,将脚本变成一个函数,它将有自己的工作空间。
您还可以用一个新的空结构替换整个struct1
变量,以确保它的类型正确,然后再分配给它的字段。
struct1 = struct;
struct1.vector = struct2.matrix(:,1);