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'
Другие вопросы по тегам