首页 > 解决方案 > 在 Matlab 中的脚本中创建结构时出现问题

问题描述

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

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

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

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

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

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

标签: matlabstruct

解决方案


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

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

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

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

推荐阅读