2016-06-19 3 views
1

У меня есть файл данных, который состоит из значений x, y, z. Что делать, чтобы извлечь наборы данных для заданного значения x или y или z. Для Рассмотрим например следующие данныеMatlab 3D plot plot - извлечение раздела данных

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 

Теперь я хочу, чтобы извлечь наборы данных, что соответствует только х = 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 значения. Индекс представляет собой индекс x, y, z, который принимает значение 1, 2, 3 соответственно. (X в ответе, например, заданном таким образом, что индекс равен 1) Значение соответствует значению, которое вы хотите извлечь. (2 в приведенном ниже примере в вопросе)

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