3

我对数据分析很陌生,所以如果这是一个菜鸟问题,对不起,我边走边学。

我刚刚开始在变星天文学方面做一些工作。对于每晚的观察,我有大约 100 个文件,它们都包含相同的基本信息(星坐标、星等)。我正在使用 for 循环将所有文件作为数组加载到我的工作区中

files = dir('*.out');

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

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

4

2 回答 2

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将每个文件的两列保存在不同的单元格中。

于 2013-05-05T19:25:08.720 回答
0

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

onlyTwoFirst = starsInfo(:,1:2)

这意味着取所有行,但只取第 1 列和第 2 列。

于 2013-05-05T17:22:18.760 回答