问题在我的Matlab脚本中创建结构

问题描述 投票:0回答:1

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

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

当我在脚本中运行此行时,它将创建一个双变量struct1。那就是为什么我会得到错误的原因:

无法执行分配,因为此类型的变量不支持点索引。

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

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

matlab struct
1个回答
0
投票

这可能意味着您在工作区中已经有一个名为struct1的变量,它是先前活动的遗留变量,或者是在脚本中更早分配的变量。]​​>

您可以在运行脚本之前调用clear,以确保您拥有一个全新的工作空间。更好的是,将您的脚本转换为函数,它将具有自己的工作区。

您还可以在分配给其字段之前,使用新的空结构替换整个struct1变量,以确保其类型正确。

struct1 = struct;
struct1.vector = struct2.matrix(:,1);
© www.soinside.com 2019 - 2024. All rights reserved.