2017-05-22 6 views
1

私は15000 * 1000のサイズの行列Aを持っています。私はそれから1000のすべてのゼロの行を削除し、サイズ14000 * 1000の新しい行列Bを取得します。新しい行列Bから行10000を選択したとしましょう。元の行列Aのこの行の元のインデックスはどのようにして見つけることができますか?言い換えれば、私は私のデータのいくつかの行の新しいインデックスに基づいて元のインデックスを探したい。たとえば、元の行列Aの14999番目の行が新しい行列Bの14000番目の行に変わった場合、Bの14000個しか与えられていない場合、どのようにして14999を得ることができますか?ありがとうございました!行を削除した後の元のインデックスの検索方法は?

答えて

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 

は、行インデックスのベクトルを作成し、i番目の行に対応するAのどの行を見つけるために、同じrejectIdx変数

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

を使用して行のインデックスを削除Bで簡単に実行できる

A(origIdx(i),:) 
+0

ありがとう! origIdx(i)は私の問題を完全に解決します! –

関連する問題