У меня есть массив ячеек с 5 клеток, как показано ниже:
<18250x1 int32> <18250x1 int32> <18250x1 int32> <18250x1 double> <18250x1 double>
В каждой клетке есть число 18250 строк и 1 столбца.
Теперь я хочу записать эти данные в файл csv с 18250 строками, 5 столбцами.
Я пробовал Cell2mat, который позволяет массиву иметь одни и те же типы данных. Мне нужно поддерживать типы данных int или double в выходе. Кто-нибудь знает, как решить эту проблему?
Спасибо, Джеймс.
Спасибо, Rayryeng, он работает втирают после небольшого изменения кода. fid = fopen ('test.csv ',' wt '); для idx = 1: 18250 val1 = M {1} (idx); val2 = M {2} (idx); val3 = M {3} (idx); val4 = M {4} (idx); val5 = M {5} (idx); fprintf (fid, '% d,% d,% d,% f,% f \ n', val1, val2, val3, val4, val5); конец fclose (fid); – James
@James Ты, наверное, поймал меня, когда я исправил небольшую ошибку. Я забыл об одном в заявлении 'fprintf'. Если это поможет, пожалуйста, подумайте о принятии моего ответа! – rayryeng
Для тех, кого это любопытно, так [документация для 'fprintf'] (http://www.mathworks.com/help/matlab/import_export/write-to-delimited-data-files.html#br2ypq2-1) инструктирует пользователю, как печатать массивы ячеек в файл. Вы также можете собрать все вложенные ячейки в массив одного уровня ('newarray = [M {1} (:), M {2} (:), ..., M {n} (:)' для этого примера), но если вы все равно зацикливаетесь, я не думаю, что вы что-то получаете. – excaza