在matlab中使用不同的结构名称打开struct

时间:2015-11-27 09:08:20

标签: matlab struct

我在不同的文件中有一系列结构,我想读入我的程序。加载文件时,我想打开并使用以下代码访问结构中的特定值。

structname_string='M1' 

I=structname.Y(5).Data

但是它没有将structname视为包含M1的变量。它试图打开一个名为“structname”的结构,它不存在。

我尝试过简单直接的方法,例如genvarname(),但也没有用。我没有在任何简单的答案中找到任何类似的问题。

2 个答案:

答案 0 :(得分:1)

假设您的struct存储在.mat个文件中,您可以这样做:

fs = load(filename);
I = fs.(structname_string).Y(5).Data;

fs包含存储在filename中的所有变量,并且本身是struct,其字段可以动态访问。

答案 1 :(得分:0)

如果我理解你的问题,我认为你想要的函数是isfield(),你可以在那里查询结构中字段的字符串名是否存在。

如果isfield()返回true,那么您可以在知道该字段存在的情况下执行结构读取。