0

我有一个这样的 .txt 文件:

structure
a = title
c1 = A.B.C
endstructure

我想把它读到matlab,然后检查我的工作区中是否已经存在一个名为ABC的结构,如果存在,那么我想把这个结构中的数据保存到变量c1中。我在正确解析行 c1 = ABC 然后将其与工作区进行比较时遇到问题。任何帮助表示赞赏。

              • 解释 - - - - - - 在我的工作空间中有一个结构 ABC = [0 1 2 3 5 8] 在我的 txt 文件中我写了 c1 = ABC,这就是名字。我想在我的程序中检查此名称是否与工作区中具有此名称的一些现有数据匹配。如果是这样,则将此数据分配给变量 c1 并将 c1 留在工作区中。

4

2 回答 2

2

要确定您的变量是否已存在于 Matlab 工作区中,您可以使用 matlab 的存在函数。在您的情况下会有点尴尬,因为您只能检查变量“A”是否存在。然后您可以进一步嵌套它并查看变量是否具有指定的字段。它可能看起来像这样:

if( exist('A','var') && isfield(A,'B') && isfield(A.B,'C') )
     %do something
end
于 2012-08-15T15:31:24.603 回答
0

您可以在“=”符号的右侧使用带有表达式的evalin语法。evalin('base',expression,catch_expr)它不是很有效,但它避免了你必须解析结构名称。在catch_expr你可以设置一个标志告诉不要做任务。

之后使用assignin它来分配'c1'中的值。'c1' 是此处的字符串,因此很容易将其放入具有不同名称的循环中。

于 2012-08-15T15:42:06.387 回答