一連の列を持つ一連のデータがあります。次のようなもの (実際には、私のデータには約 50 万行あります):
big = [
1 1 0.93 0.58;
1 2 0.40 0.34;
1 3 0.26 0.31;
1 4 0.40 0.26;
2 1 0.60 0.04;
2 2 0.84 0.55;
2 3 0.53 0.72;
2 4 0.00 0.39;
3 1 0.27 0.51;
3 2 0.46 0.18;
3 3 0.61 0.01;
3 4 0.07 0.04;
4 1 0.26 0.43;
4 2 0.77 0.91;
4 3 0.49 0.80;
4 4 0.40 0.55;
5 1 0.77 0.40;
5 2 0.91 0.28;
5 3 0.80 0.65;
5 4 0.05 0.06;
6 1 0.41 0.37;
6 2 0.11 0.87;
6 3 0.78 0.61;
6 4 0.87 0.51
];
3
さて、最初の列が aまたは aである行を取り除きたいとしましょう6
。
私はそれを次のようにやっています:
filterRows = [3 6];
for i = filterRows
big = big(~ismember(1:size(big,1), find(big(:,1) == i)), :);
end
これは機能しますが、ループにより、より効率的なトリックが不足していると思われます。これを行うより良い方法はありますか?
もともと私が試した:
big(find(big(:,1) == filterRows ),:) = [];
しかし、もちろんそれはうまくいきません。