Matlab 3D散点图-提取数据部分

Matlab 3D散点图-提取数据部分,matlab,extract,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中实现这一点?我找到了一个简单的解决方案 function extract(data,in

我有一个由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中实现这一点?

我找到了一个简单的解决方案

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值的文件。Index表示分别取值1、2、3的x、y、z索引。(问题中给出的示例中的x为1,因此索引为1)值对应于要提取的值。(问题中给出的示例中的2)

此问题更具Matlab风格的解决方案是使用
查找
命令和
保存
命令:

function extract(data,index,value)
    I=find(data(:,index)==value));
    excerpt_data = data(I,:);
    save('extract.txt','excerpt_data','-ascii','-tabs');