我对数据分析很陌生,所以如果这是一个菜鸟问题,我很抱歉,我正在学习。
我刚开始做变星天文学的一些工作。我每晚观察大约有100个文件,它们都包含相同的基本信息(星座,星等等)。我使用for-loop
将所有文件作为数组加载到我的工作区中files = dir('*.out');
for i=1:length(files)
eval(['load ' files(i).name ' -ascii']);
end
我只对每个文件中的两列感兴趣。有没有办法在这个for循环运行时提取列并将其设置为向量?我确信这是可能的,但它的实际语法正在逃避我。
答案 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列。