2016-03-29 2 views

ответ

1
A{1} = 'Tuna'; 
B = repmat(A, 5); 

Чтобы уточнить, A{1} = 'Tuna' создает одну ячейку со строкой. Если бы вы использовали A = 'Tuna', вы бы создали вектор символов. Выполнение repmat на векторе символов таким образом фактически создало массив символов 5x20.

+0

или 'repmat ({ 'тунец'}, 5)' – Amro

2

Другой подход заключается в использовании 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 
+0

также: 'С = клетки (5); C (:) = {'Tuna'} ' – Amro

+0

@Amro doh. Я всегда забываю об этом! – Suever