Копирование элементов матрицы

Обсуждение форума и архива форума www.matlab.ru

Модератор: Admin

Vasily123
Пользователь
Сообщения: 1
Зарегистрирован: Чт дек 06, 2018 11:05 am

Копирование элементов матрицы

Сообщение Vasily123 » Чт дек 06, 2018 11:13 am

Здравствуйте. Подскажите, пожалуйста, как можно сделать из матрицы A[n,m] матрицу A[4*n,m] так, чтобы после каждой строки появились 3 такие же, как и первая? Не знаю, насколько понятно выразился, поэтому приведу пример:
A=[1 2 3 4; 5 6 7 8];
*текст программы*
A=[1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4; 5 6 7 8; 5 6 7 8; 5 6 7 8; 5 6 7 8];

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: Копирование элементов матрицы

Сообщение Jey » Пт дек 07, 2018 8:33 am

Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Копирование элементов матрицы

Сообщение sandy » Пт дек 07, 2018 7:19 pm

Не, здесь не это нужно. В вопросе речь не о дублировании всей матрицы, а о размножении каждой строки. Если установлен Communication Systems Toolbox, то это сделает функция rectpulse. Или можно через произведение Кронекера:

Код: Выделить всё

B = kron(A, ones(N, 1));

Здесь A - исходная матрица, B - итоговая, N - коэффициент размножения

Update: начиная с R2015a еще вот так можно:

Код: Выделить всё

B = repelem(A, N, 1);
С уважением

Александр Сергиенко