如何在matlab中采样矩阵元素
How to sample matrix elements in matlab
我有一个坐标列表,我想从矩阵中采样。
有什么优雅的方法吗?
理想情况下,看起来像:
A = magic(5)
A =
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
r = 1:5; % row coordinates
c = 5:-1:1; % column coordinates
A(r,c)
ans =
15 14 13 12 11
相当于
for k=1:length(r)
A(r(k), c(k))
end
我确定有人问过这个问题,但我在任何地方都找不到。
应用@excaza 评论我能够解决这个问题:
rc_ids = sub2ind(size(A), r,c);
A(rc_ids)
我有一个坐标列表,我想从矩阵中采样。 有什么优雅的方法吗?
理想情况下,看起来像:
A = magic(5)
A =
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
r = 1:5; % row coordinates
c = 5:-1:1; % column coordinates
A(r,c)
ans =
15 14 13 12 11
相当于
for k=1:length(r)
A(r(k), c(k))
end
我确定有人问过这个问题,但我在任何地方都找不到。
应用@excaza 评论我能够解决这个问题:
rc_ids = sub2ind(size(A), r,c);
A(rc_ids)