处理编号的变量名称MATLAB

时间:2015-08-09 14:53:29

标签: matlab

这是一个很长的问题:

我正在构建一些已经存在的软件的扩展,每次运行时都会将数据作为结构数组输出。它们总是具有相同的名称(structureArray)

我想获取所有这些结构数组,并使用它们在具有for循环和单元数组的单个代码中进行分析。

所以我现在有这个现有软件的3个结构数组,我将其命名为structureArray1,structureArray2和structureArray3。我已经使用以下方法将每个这些方法放入一个名为" storage"的单元格数组中。

[filename, pathname] = uigetfile('*.mat','Please select your structure     arrays',...
    'Multiselect','on');

storage = cell(1,numel(filename));

for x = 1 : numel(filename)
    storage{x} = load([pathname filename{x}]);
end

现在问题在于:

在每个structureArray(1,2,3)中(现在在"存储"内)有一个名为" magV"的矩阵。我想要一个1x3的单元格数组,第一个单元格包含来自structureArray1的magV,第二个单元格包含来自structureArray2的magV,依旧......

到目前为止我的尝试:

magnitude_V = cell(1,numel(storage));

for y = 1 : numel(storage)
    magnitude_V{y} = storage{1,y}.structureArray1.velocityMap.magV;
end

但是因为所有的结构数组最后都有不同的数字,所以我不能使用这种方法......

非常感谢你的帮助,因为这让我很生气 - .-

1 个答案:

答案 0 :(得分:0)

您可以在括号中引用由字符串组成的结构,例如: sometruct.('somefield')

magnitude_V = cell(1,size(storage,2));

for y = 1 : size(storage,2)
    magnitude_V{y} = storage{y}.(['structureArray' num2str(y)]).velocityMap.magV;
end
相关问题