Arrays 在MATLAB中从大数组中写出具有特定值的单元格的行

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

我正在从一个大数组(~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

        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,:);