Matlab三维散点图 - 提取数据部分

时间:2016-06-19 09:40:20

标签: matlab extract

我有数据文件,包含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中做到这一点?

2 个答案:

答案 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)问题)