Вы можете объединить две ваши попытки, обратите внимание, что вы делаете хотите 'UniformOutput'
из cellfun
, потому что вам нужен логический массив.
A = num2cell(A);
A(cellfun(@isnan,A)) = {'-'};
В качестве альтернативы вы можете просто используйте al oop ...
B = cell( size( A ) );
idx = isnan( A );
for ii = 1:numel(A)
if idx(ii)
B{ii} = '-';
else
B{ii} = A(ii);
end
end
Это может показаться глупым, но если вы боретесь с правильной реализацией mat2cell
/ cellfun
/ et c, то вы можете гарантировать код, написанный с этими функциями, будет сложнее поддерживать для себя и других! По крайней мере, l oop является явным и не обязательно медленным в наши дни (хотя, если вы храните данные цифр c в массивах ячеек смешанного типа, я должен предположить, что производительность в любом случае не имеет первостепенного значения).