Your cell array contains multiple empty cells, and also cells that contain cells with non-scalar strings. In the general case it is not possible to convert a cell array with non-scalar string into a character array of the same size as the cell array. The only case where this conversion is guaranteed is if every string is scalar, which is not the case for your cell array.
>> postfix(cellfun(@isempty,postfix)) = {''};
>> out = reshape([postfix{:}],size(postfix));
>> size(out)
ans =
137 25
>> iscellstr(out)
ans = 1
Consider the example from my original answer: if you converted Y (a cell-array of strings) to a character array, what size would you expect it to be? Your requirement is that it should be the same size as X, but this is not possible:
>> X = {{'A'},{'bb'};{'CCC'},{'d'}}
X =
{1x1 cell} {1x1 cell}
{1x1 cell} {1x1 cell}
>> Y = reshape([X{:}],size(X))
Y =
'A' 'bb'
'CCC' 'd'
>> char(Y)
ans =
A
CCC
bb
d
Best Answer