将多行插入矩阵,移动现有行

kne*_*epp 1 matlab matrix vectorization

题:

我正在寻找在指定行之前将多行R插入矩阵的最有效方法,同时将现有行向下移动.MI

例:

M = [1 1 1 1;
     2 2 2 2;
     3 3 3 3;
     4 4 4 4;
     5 5 5 5];
I = [1 3 3 5];
R = [-6 -6 -6 -6;
     -7 -7 -7 -7;
     -8 -8 -8 -8
     -9 -9 -9 -9];
Run Code Online (Sandbox Code Playgroud)

结果应该是矩阵:

[-6 -6 -6 -6
  1  1  1  1
  2  2  2  2
 -7 -7 -7 -7
 -8 -8 -8 -8
  3  3  3  3
  4  4  4  4
 -9 -9 -9 -9
  5  5  5  5]
Run Code Online (Sandbox Code Playgroud)

小智 5

此功能在文件交换中可用.它本质上是做什么的:

ind = [1:size(M, 1) I-1];
[~, ind] = sort(ind);
MR = [M; R];
MR = MR(ind,:);
Run Code Online (Sandbox Code Playgroud)