我有一个像这样的.txt文件:
structure
a = title
c1 = A.B.C
endstructure
我想将此内容读取到matlab,然后检查我的工作区中是否已存在名为A.B.C的结构。如果是这样,那么我想将数据从这个结构保存到变量c1。 我有正确解析c1 = A.B.C行然后将其与工作空间进行比较的问题。 任何帮助表示感谢。
答案 0 :(得分:2)
要确定您的变量是否已存在于Matlab工作区中,您可以使用matlab exist函数。在你的情况下会有点尴尬,因为你只能检查变量'A'是否存在。然后,您可以进一步嵌套它,看看变量是否具有指定的字段。它看起来像这样:
if( exist('A','var') && isfield(A,'B') && isfield(A.B,'C') )
%do something
end
答案 1 :(得分:0)
您可以使用evalin
语法为evalin('base',expression,catch_expr)
,表达式为“=”符号的右侧。
它不是很有效但它可以避免你必须解析结构名称。在catch_expr
中,您可以设置一个标志,告知不要进行分配。
之后只需使用assignin
即可在'c1'中指定值。 'c1'是一个字符串,所以很容易将它放在一个不同名称的循环中。