如何从已保存的工作区重命名变量?

时间:2017-07-24 20:11:39

标签: matlab variables mat-file

MAT文件中包含的变量" var"如何以不同的名称加载?

我有一些MAT文件,其中包含一个名称始终相同的变量,但值当然不同。我希望通过循环加载它们而不在每次迭代中重写它们,所以我需要在加载之前更改它们的名称。这可能吗?

在已保存的工作空间中重命名变量然后加载它也是一种解决方案。这是另一种策略吗?

1 个答案:

答案 0 :(得分:3)

我建议您将加载的数据存储在某种形式的数组(numeric中,而不是使用大量重命名的变量(例如var_1var_2等)乱丢您的工作区, cellstructure)。这通常会使组织和处理数据变得更加容易。这是一个将数据加载到结构数组中的示例,使用3个MAT文件,每个文件存储具有不同值(1,2和3)的变量var

fileNames = {'file1.mat'; 'file2.mat'; 'file3.mat'};
for iFile = 1:numel(fileNames)
  structArray(iFile) = load(fileNames{iFile}, 'var');
end

structArray将是包含字段var中数据的结构元素数组:

>> structArray

structArray = 
  1×3 struct array with fields:
    var

现在,您可以提取字段值并将它们放在数字数组中,如下所示:

>> numArray = [structArray.var]

numArray =
     1     2     3

或者,如果它们的大小或数据类型不同,请将它们放在单元格数组中:

>> cellArray = {structArray.var}

cellArray =
  1×3 cell array
    [1]    [2]    [3]