很抱歉,如果之前有人问这个问题,但我似乎无法找到合适的答案!
我在Matlab中有这种矩阵:
1 0.2 0.3 1 5
1 0.25 0.36 1 6
1 0.3 0.3 -1 5
2 0.1 0.3 1 5
2 0.3 0.3 -1 5
2 0.6 0.4 -1 9 ......
矩阵实际上要长得多,并且在第一列中的值为346。
如何根据第一列中值的特定顺序将矩阵拆分为更小的矩阵?例如,我需要按顺序排列第一列= 160,130,256,2的所有值的矩阵?
答案 0 :(得分:3)
说M是你的MatLab矩阵。然后find(M(:,1)== 7)为您提供您要查找的行的索引。此外,您可以执行类似M(M(:,1)== 7,:)的操作来访问相应的子矩阵
答案 1 :(得分:1)
使用grep
执行此操作:
grep -E '^(160|130|256|2)[ \t]'
在matlab
中,您可以使用比较运算符,例如如果data
是矩阵:
data(data(:, 1) == 1, :)
将返回第一列值为1的子矩阵。要将它应用于您的示例,可以执行以下操作:
subm = [];
for i=[160, 130, 256, 2]
subm = [subm; data(data(:, 1) == i, :);
end