Arrays 在MATLAB中从大数组中写出具有特定值的单元格的行
我正在从一个大数组(~50000 x 45)中读取数据。我试图从中提取x_值(第27列)高于特定值(本例中为1.8)的行 我能够写入数组(p1),但每个输出行都是相同的(x>1.8的大数组的最后一行) 有人能告诉我怎样正确地写出这些数据吗 谢谢Arrays 在MATLAB中从大数组中写出具有特定值的单元格的行,arrays,matlab,extract,Arrays,Matlab,Extract,我正在从一个大数组(~50000 x 45)中读取数据。我试图从中提取x_值(第27列)高于特定值(本例中为1.8)的行 我能够写入数组(p1),但每个输出行都是相同的(x>1.8的大数组的最后一行) 有人能告诉我怎样正确地写出这些数据吗 谢谢 n = length(DAT); bin = 1.8; x_value = DAT(:,27); row = sum(x_value > bin); for s = 1:n; if DAT(s,27) > bin
n = length(DAT);
bin = 1.8;
x_value = DAT(:,27);
row = sum(x_value > bin);
for s = 1:n;
if DAT(s,27) > bin
for r = 1:row;
p1(r,:) = DAT(s,:);
end
end
end
你为什么要总结?您可以编写
row=(x_值>bin)代码>。这是一个逻辑索引。然后可以提取为:desiredValue
=x_值(行)`您还可以使用逻辑索引并省略find
,即:p1=DAT(DAT(:,column)>bin,:)代码>
bin = 1.8;
column = 27;
rows = find(DAT(:,column) > bin);
p1 = DAT(rows,:);