cla*_*iop 2 matlab matrix vectorization
我有一个MxN
矩阵,我想要一个列向量v
,使用向量s
告诉我矩阵中的每一行我将采取什么列.
这是一个例子:
Matrix =
[ 4 13 93 20 42;
31 18 94 64 02;
7 44 24 91 15;
11 20 43 38 31;
21 42 72 60 99;
13 81 31 87 50;
32 22 83 24 04]
s = [4 4 5 4 4 4 3].'
Run Code Online (Sandbox Code Playgroud)
而期望的输出是:
v = [20 64 15 38 60 87 83].'
Run Code Online (Sandbox Code Playgroud)
我想用这个表达方式
Matrix(:,s)
Run Code Online (Sandbox Code Playgroud)
会工作,但事实并非如此.有没有使用for循环分别访问行的解决方案?
它不漂亮,可能有更好的解决方案,但你可以使用这样的功能sub2ind
:
M(sub2ind(size(M),1:numel(s),s'))
Run Code Online (Sandbox Code Playgroud)