Vin*_*s M 2 indexing matlab vector matrix vectorization
我有一个矢量和这样的矩阵:
v = [0.3 -3 3 -2 7 6]
INDEX = [1 3; 3 5; 4 6]
Run Code Online (Sandbox Code Playgroud)
INDEX是表示在第一和最后一个元素的矩阵v,该RESULT行必须有.我要确保在每一个时间间隔INDEX,即
1 to 3,3 to 5与4 to 6具有相同的长度,所以在每一行RESULT矩阵具有相同的长度.
我想获得这样的矩阵:
RESULT = [0.3 -3 3;
3 -2 7;
-2 7 6]
Run Code Online (Sandbox Code Playgroud)
没有for循环怎么做?
确定每行的最后一个值和第一个值之间的差异INDEX.使用此差异生成所需的索引,然后使用这些索引提取所需的值.
idx = [INDEX(:,1) INDEX(:,1)+[1:INDEX(1,end)-INDEX(1,1)]]; %Generating the indices
%for finding indices in <= R2016a, use this:
%idx = [INDEX(:,1) bsxfun(@plus, INDEX(:,1), [1:INDEX(1,end)-INDEX(1,1)])];
RESULT = v(idx);
Run Code Online (Sandbox Code Playgroud)