如何索引矩阵中的稀疏元素集?

时间:2012-02-17 01:51:42

标签: matlab

我有一个大矩阵,我想使用一个调用语句在不同的位置检索一组值。

例如,我想检索(2,3),(6,7)和(15,19)

我知道我可以做以下事情;

myRows = [2 6 15];
myCols = [3 7 19];
myTempResults = myBigMatrix(myRows, myCols);    % Which will return all possible pairs
% Then I can do
%
myFinalResults = diag(myTempResults);

但我想知道正确/正确的做法。

由于

1 个答案:

答案 0 :(得分:0)

您必须自己使用sub2ind或计算线性指数:

a = rand(20,30); % 20 x 30 matrix
myRows = [2 6 15];
myCols = [3 7 19];

% method 1, sub2ind
a(sub2ind(size(a),myRows,myCols))

% or calculate it yourself, Matlab is column major
% and 1-based so row/col (i,j) is (j-1)*nrow+i
a( (myCols-1)*size(a,1) + myRows )