如何为我的机器加载内存太大的.mat文件的一部分?

时间:2013-07-08 03:51:55

标签: matlab mat-file

我有一个我想要处理的大.mat文件,但它太大了,不适合单个加载。我想加载它的部分,每次只访问重要的参数。所以我几乎有两个问题:

  1. 如何在不加载的情况下访问mat文件的变量名称?
  2. 如何只将其中一个加载到工作区?
  3. 谢谢!

2 个答案:

答案 0 :(得分:8)

您可以使用以下方式查看变量列表:

vars = whos('-file','name.mat');

然后只需加载您想要的变量,例如列表中的第一个变量:

load('name.mat', vars(1).name)

答案 1 :(得分:6)

除了按照@natan的建议加载.mat文件中的各个变量之外,在最近的MATLAB版本中,您可以使用matfile对象仅加载单个变量的部分内容。

例如,您可以说:

myFile = matfile('path\to\the\mat\file');
loadedData = myfile.myVarName(100:200, 500:600);

,您只会从文件myVarName加载变量myFile的一部分。


编辑:

matfile对象还有方法sizewhowhos,这样您就可以在尝试之前确定文件包含的变量的名称和大小加载位。