如何比较.text文件中的字符串与Matlab中的工作区

时间:2012-08-15 15:12:30

标签: matlab text-files workspace

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

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

我想将此内容读取到matlab,然后检查我的工作区中是否已存在名为A.B.C的结构。如果是这样,那么我想将数据从这个结构保存到变量c1。 我有正确解析c1 = A.B.C行然后将其与工作空间进行比较的问题。 任何帮助表示感谢。

              • 解释 - - - - - - 在我的工作区中有一个结构A.B.C. = [0 1 2 3 5 8] 在我的txt文件中,我写了c1 = A.B.C,这就是名字。我希望在我的程序中检查此名称是否与工作区中具有此名称的某些已存在的数据匹配。如果是,请将此数据分配给变量c1并将c1保留在工作区中。

2 个答案:

答案 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'是一个字符串,所以很容易将它放在一个不同名称的循环中。