Реплицируйте матрицу по одной строке за раз

matlab

354 просмотра

3 ответа

У меня есть матрица

A = [1;2;3]

Как мне повторить Aчетыре раза, повторив каждый ряд четыре раза, прежде чем перейти к следующему, чтобы получить

[1;1;1;1;2;2;2;2;3;3;3;3;4;4;4;4]

?

Автор: user1956609 Источник Размещён: 12.11.2019 09:39

Ответы (3)


3 плюса

Решение

В этом конкретном случае вы могли бы сделать что-то вроде

A = [1;2;3;4];
B = repmat(A',4,1);
B = B(:);

То, что это делает, является копией A'для создания матрицы B:

 1     2     3     4
 1     2     3     4
 1     2     3     4
 1     2     3     4

Затем он преобразует его в один столбец, используя B(:).

Автор: MrAzzaman Размещён: 14.01.2014 04:21

2 плюса

Как насчет использования крон? Это идеально подходит для этого.

kron(A,ones(4, 1))
Автор: Stewie Griffin Размещён: 14.01.2014 05:25

0 плюса

хорошо, вы могли бы попробовать

(A*ones(1,4))' 
Автор: ahmetselcuk Размещён: 14.01.2014 09:37
Вопросы из категории :
32x32