Matlab 3D散点图-提取数据部分
我有一个由x,y,z值组成的数据文件。我应该如何提取给定x、y或z值的数据集。 例如,考虑以下数据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
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');