如何在删除行后找到原始索引?

时间:2017-05-22 18:38:38

标签: matlab matrix

我有一个大小为15000 * 1000的矩阵A.我删除了1000个全零行,并得到一个大小为14000 * 1000的新矩阵B.让我们说我从新矩阵B中选择行10000.如何在原始矩阵A中找到该行的原始索引?换句话说,我想根据我数据中某些行的新索引找到原始索引。例如,如果原始矩阵A中的第14999行变为新矩阵B中的第14000行,那么当给出B中只有14000时,如何得出14999?谢谢!

1 个答案:

答案 0 :(得分:1)

我会后退一步,使用索引向量来删除(或选择)原始矩阵中的行。让我们说你有这样的行动:

A = randn(150,100); % Sample A matrix
rejectIdx = randi(150,10,1); % 10 rows which should be removed (selected at random here)
B = A; B(rejectIdx,:) = []; % Remove the ten rows from A

创建行索引的向量,并使用相同的rejectIdx变量

删除行索引
origIdx = 1:150; origIdx(rejectIdx) = []; % Save row indexes and remove index using the same idx

现在要找到A中哪一行对应于B中的第i行,可以简单地执行

A(origIdx(i),:)