[Тунец, Тунец, Тунец, Тунец]Как создать матрицу из тех же строк в Matlab?
Я хочу сделать такую матрицу, но ее версию 5x5. Есть ли какая-нибудь функция для этого?
[Тунец, Тунец, Тунец, Тунец]Как создать матрицу из тех же строк в Matlab?
Я хочу сделать такую матрицу, но ее версию 5x5. Есть ли какая-нибудь функция для этого?
A{1} = 'Tuna';
B = repmat(A, 5);
Чтобы уточнить, A{1} = 'Tuna'
создает одну ячейку со строкой. Если бы вы использовали A = 'Tuna'
, вы бы создали вектор символов. Выполнение repmat на векторе символов таким образом фактически создало массив символов 5x20.
Другой подход заключается в использовании deal
, чтобы сделать это за вас.
tuna = cell(5);
[tuna{:}] = deal('Tuna');
'Tuna' 'Tuna' 'Tuna' 'Tuna' 'Tuna'
'Tuna' 'Tuna' 'Tuna' 'Tuna' 'Tuna'
'Tuna' 'Tuna' 'Tuna' 'Tuna' 'Tuna'
'Tuna' 'Tuna' 'Tuna' 'Tuna' 'Tuna'
'Tuna' 'Tuna' 'Tuna' 'Tuna' 'Tuna'
Или, как suggested by @Amro:
tuna = cell(5);
tuna(:) = {'Tuna'};
Если вы не хотите массив ячеек и просто массив символов, вы можете использовать repmat
на саму строку.
repmat('Tuna', 5)
TunaTunaTunaTunaTuna
TunaTunaTunaTunaTuna
TunaTunaTunaTunaTuna
TunaTunaTunaTunaTuna
TunaTunaTunaTunaTuna
или 'repmat ({ 'тунец'}, 5)' – Amro