复制矩阵的一行或一列并将其插入到下一行/列。

8

我想知道在MATLAB中有没有一种简单的方法来执行以下操作:我想复制矩阵的一行或者一列并将其插入到下一行/列中。

例如:给定一个3x3的矩阵

1 2 3
4 5 6
7 8 9

我想复制第一行并将其插入为第二行:
1 2 3
1 2 3
4 5 6
7 8 9

请问有人能指导我如何在MATLAB中完成这个任务吗?谢谢!


幸运的是,我们谈论的是Matlab,而Matlab可以做任何事情 :-) - Sнаđошƒаӽ
4个回答

16
你可以简单地重复希望重复的行的索引。
A = A([1 1 2 3],:)

3

要将行号source插入为行号target:

A = [A(1:target-1,:); A(source,:); A(target:end,:)];

0

我知道这是一个非常老的话题,但当我在寻找一个我记不起名字的特定Matlab函数时,这篇文章出现在了我的搜索结果中——padarray。

所以,你可以这样做:

A = [1 2 3; 4 5 6; 7 8 9];

A = padarray(A,[1 0],'replicate','pre');

如果A是一个函数的输出,而你没有显式地保存它,那么你就不知道第一行是什么,这时候这个方法通常很有帮助。无论如何,希望这能帮助到某些人!


0
A = [A(1,:); A];

不够通用。OP给出的示例仅使用了第一行,但他的问题并非如此。trutheality提供了唯一适用于任何选择和插入行的通用方法。 - Keir Simmons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接