我有一个大矩阵,我想使用一个调用语句在不同的位置检索一组值。
例如,我想检索(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);
但我想知道正确/正确的做法。
由于
答案 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 )