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