Скопируйте строку или столбец матрицы и вставьте ее в следующую строку / столбец. - PullRequest
8 голосов
/ 06 июня 2011

Мне было интересно, есть ли в MATLAB простой способ выполнить следующую операцию: я хотел бы скопировать строку или столбец матрицы и вставить ее в следующую строку / столбец.

Например: с учетом матрицы 3х3

1 2 3
4 5 6
7 8 9

Я хотел бы скопировать первый ряд и вставить его как второй ряд:

1 2 3
1 2 3
4 5 6
7 8 9

Может кто-нибудь посоветовать, как мне это сделать в MATLAB? Спасибо!

Ответы [ 4 ]

16 голосов
/ 06 июня 2011

Вы можете просто повторить индексы строк, которые вы хотите повторить

A = A([1 1 2 3],:)
3 голосов
/ 06 июня 2011

Для вставки номера строки source в качестве номера строки target:

A = [A(1:target-1,:); A(source,:); A(target:end,:)];
0 голосов
/ 07 марта 2014

Я знаю, что это действительно старая тема, но этот пост появлялся в поисках, которые я делал для той же проблемы, когда искал определенную функцию Matlab, я не мог вспомнить имя - padarray.

Итак, вы можете сделать:

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

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

Это часто полезно, если, например, A является выходом функции, которую вы не сохранили явно, поэтому вы не знаете, что такое первая строка. Во всяком случае, надеюсь, что это кому-то поможет!

0 голосов
/ 06 июня 2011
A = [A(1,:); A];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...