假设我有一个矩阵A
A = magic(5)
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
现在我使用
选择此矩阵的块A(1:2, 1:2)
17 24
23 5
现在我需要由(1:2,1; 2)给出的线性指数(1 2 6 7)。使用sub2ind:
sub2ind(size(A),[1:2], [1:2])
但是这个命令只返回(1 7)我该如何解决这个问题?
答案 0 :(得分:3)
假设您要选择A(1:2,2:3)
:
% Row and column indexes
rind = 1:2;
cind = 2:3;
pos = bsxfun(@plus,rind', size(A,2)*(cind-1));
pos =
6 11
7 12
您可能希望将其重新整形为列向量pos(:)
,或者在调用reshape()
的一行中重新整形。
答案 1 :(得分:0)
您需要指定4个下标:[1 1]
,[2 1]
,[1 2]
和[2 2]
。
>> sub2ind(size(A),[1 2 1 2], [1 1 2 2])
ans =
1 2 6 7