2016-06-19 21 views
1

私はx、y、z値からなるデータファイルを持っています。与えられたxまたはyまたはz値のデータセットを抽出するにはどうすればよいですか? は、例えばのために Matlab 3D散布図 - データセクションを抽出

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

私はここでデータをこの

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はx、y、zのインデックスを表し、それぞれ1、2、3の値をとります(例えば、xは問題になるのでindexは1)。値は抽出したい値に相当します。

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');