在matlab中移位索引值

时间:2016-07-23 07:06:49

标签: matlab

假设我有两行,数据为

R1 = 12 13 15 17 200 23

R2 = 32 22 43 67 21 74

我想知道如何将R1的第二个索引和第三个索引(例如,13 15)的值转换为R2的第二行,使其成为

R2 = 32 13 15 67 21 74

1 个答案:

答案 0 :(得分:1)

这很简单:R2(2:3) = R1(2:3);

代码示例:

R1 = [12 13 15 17 200 23];
R2 = [32 22 43 67 21 74];
R2(2:3) = R1(2:3);

您还可以使用以下内容:R2([2,3]) = R1([2,3]);,以防索引不是连续的。

如果R1和R2是矩阵中的两行,您可以使用以下示例:

% Create the input matrix A:
R1 = [12 13 15 17 200 23];
R2 = [32 22 43 67 21 74];
A = [R1; R2];

%Copy values from index 2 and 3 of first row to index 2 and 3 of second row:
A(2, [2,3]) = A(1, [2,3]);

如果有更多行,并且您需要“向下移动”所有行,您可以使用以下示例:

%Create sample matrix A (6x6 elements).
A = magic(6);

%"Shift" values of index 2,3 of all rows, one row down:
A(2:end, [2,3]) = A(1:end-1, [2,3]);

请参阅此处:http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html