Matlab: конвертировать ячейку в читаемый формат
Заранее спасибо за помощь.
У меня есть массив значений, который выглядит следующим образом
[[1x5 double]; [1x2 double]; ....]
Я хотел бы преобразовать это в это
['12345'; '12'; ....]
cell2mat вроде делает то, что я хочу, но я получаю это
[['1' '2' '3' '4' '5']; ['1' '2'];...]
Я изучил всю документацию по Matlab и не нашел способа сделать это. На самом деле все, что я хочу - это преобразовать [1x5 double] в строку (я не могу преобразовать в num, потому что я не хочу сбрасывать незначительные нули). Есть ли простой способ сделать это, кроме как делать это вручную с помощью циклов for?
1 ответ
Решение
Если input_array
ваш входной массив, попробуйте это cellfun
+ num2str
основанный подход -
cellfun(@(x) num2str(x,'%1d'), input_array,'uni',0)
Пример -
%// Input array
input_array = {randi(9,1,5)-1;randi(9,1,2)-1}
%// Display the cell array values for verification of results later on
celldisp(input_array)
%// Output
out = cellfun(@(x) num2str(x,'%1d'), input_array,'uni',0)
Выход (на ходу) -
input_array =
[1x5 double]
[1x2 double]
input_array{1} =
3 6 0 5 3
input_array{2} =
6 2
out =
'36053'
'62'