我有数据文件,包含x,y,z值。如何为给定的x或y或z值提取数据集应该怎么做。 例如,考虑以下数据
x y z
1 5 5
2 5 4
2 7 5
2 8 9
2 -5 -9
3 6 9
2 5 7
8 7 5
9 6 4
-8 9 6
1 6 4
现在我想提取仅对应于x = 2的数据集。我怎么能在Matlab中做到这一点?
答案 0 :(得分:1)
这个问题的Matlab风格解决方案是使用find
命令和save
命令:
function extract(data,index,value)
I=find(data(:,index)==value));
excerpt_data = data(I,:);
save('extract.txt','excerpt_data','-ascii','-tabs');
答案 1 :(得分:0)
我找到了一个简单的解决方案
function extract(data,index,value)
file = fopen('extract.txt','a');
for i = 1:length(data(:,index))
if data(i,index) == value
fprintf(file, '%f\t%f\t%f\n', data(i,1),data(i,2),data(i,3));
end
end
fclose(file)
这里的数据对应于包含x,y,z值的文件。索引表示分别取值1,2,3的x,y,z索引。(例如,在给出的问题中x为索引为1)值对应于您要提取的值。(例如,给出2)问题)