将矩阵/结构数据而不是字符串名称分配给变量

时间:2014-06-27 14:15:17

标签: string matlab structure

我有一个脚本可以打开文件夹并对存在的数据进行一些处理。比如,有一个文件“XYZ.tif”。

在这个tif文件中,有两组数据集,它们在工作区中显示为

data.ch1eXYZ

data.ch3eXYZ

如果我想继续第二套,我可以使用 A = data.ch3eXYZ

但是,XYZ通常更长并且每个文件都不同,而data.ch3e是一致的。

因此我试过了 A = strcat的( 'data.ch3e', 'origfilename'); 其中origfilename当然是XYZ,它之前已经(自动)被提取过了。

但是,这给了我一个字符串A(因为我几乎输入了

A='data.ch3eXYZ'

而不是data.ch3eXYZ实际上的矩阵。 我认为这只是(),[]或{}的问题,但我似乎无法弄明白。

提前致谢!

1 个答案:

答案 0 :(得分:3)

如果你知道字符串,那么dynamic field references应该对你有所帮助,远远超过eval

来自链接博客帖子的稍微修改过的示例:

fldnm = 'fred';
s.fred = 18;
y = s.(fldnm)

返回:

y =

    18

所以对你的情况来说:

test = data.(['ch3e' origfilename]);

应该足够了

修改:链接到the documentation