Если я делаю
for i=1:3
C(i)=char('A');
end
Я получаю C=AAA
, как и следовало ожидать. Я подозреваю, что причина, по которой вы получаете десятичное значение символа, заключается в том, что вы могли предварительно выделить C
как C=zeros(16)
. MATLAB инициализировал массив как тип numeric
и, соответственно, когда вы заменили элемент на char
, он быстро преобразовал его в числовое значение.
Лучше было бы использовать cells
, а затем преобразовать его в матрицу.
C=cell(4,4);%# create an empty 4x4 cell
for i=1:16
C{i}=char('A');
end
C=
'A' 'A' 'A' 'A'
'A' 'A' 'A' 'A'
'A' 'A' 'A' 'A'
'A' 'A' 'A' 'A'
Теперь используйте cell2mat
, чтобы преобразовать его в матрицу:
Cmatrix=cell2mat(C)
Cmatrix=
AAAA
AAAA
AAAA
AAAA
Обычно я бы не использовал циклы, но я не знаю ваших точных требований, поэтому я показал пример по вашему вопросу.