在读取数据文件时提取变量

时间:2013-05-05 17:11:24

标签: matlab

我对数据分析很陌生,所以如果这是一个菜鸟问题,我很抱歉,我正在学习。

我刚开始做变星天文学的一些工作。我每晚观察大约有100个文件,它们都包含相同的基本信息(星座,星等等)。我使用for-loop

将所有文件作为数组加载到我的工作区中
files = dir('*.out');

for i=1:length(files)
eval(['load ' files(i).name ' -ascii']);
end

我只对每个文件中的两列感兴趣。有没有办法在这个for循环运行时提取列并将其设置为向量?我确信这是可能的,但它的实际语法正在逃避我。

2 个答案:

答案 0 :(得分:1)

尝试使用load作为函数并将其输出保存到变量

files = dir('*.out');
twoCols = {};
for ii=1:length(files)
    data = load( files(ii).name, '-ascii' ); % load file into "data"
    twoCols{ii} = data(:,1:2); % take only two columns 
end

现在,变量twoCols将每个文件的两列保存在不同的单元格中。

答案 1 :(得分:0)

您必须将加载结果分配给新变量。然后,如果我们说你的变量是starsInfo,你可以使用

onlyTwoFirst = starsInfo(:,1:2)

这意味着占用所有行,但仅包含第1列和第2列。