MATLAB записывает строку, а затем таблицу в файл - PullRequest
0 голосов
/ 13 июля 2020

Мне нужно записать строку и таблицу в один текстовый файл. Строка содержит описание данных в таблице, но не является заголовками таблицы. Я использую R2019a, что, как я полагаю, означает, что опция «Добавить» с возможностью записи не работает? Пожалуйста, посмотрите мой пример данных ниже:

% Load data
load cereal.mat;
table =  table(Calories, Carbo, Cups, Fat, Fiber, Mfg, Name, Potass);
string = {'This is a string about the cereal table'};
filename = "dummyoutput.sfc";

% How I tried to do this (which does not work!)
fid = fopen(filename, 'w', 'n');
fprintf(fid, '%s', cell2mat(string))
fclose(fid);
writetable(table, filename, 'FileType', 'text', 'WriteVariableNames', 0, 'Delimiter', 'tab', 'WriteMode', 'Append')

Я получаю эту ошибку:

Error using writetable (line 155)
Wrong number of arguments.

Есть ли у кого-нибудь предложения относительно дальнейших действий?

Спасибо!

1 Ответ

0 голосов
/ 13 июля 2020

Немного хакерский, но вот идея.

  • Преобразуйте существующую таблицу в массив ячеек с помощью table2cell .
  • Добавьте строку ячеек, которая состоит из вашей строки, за которой следуют пустые ячейки.
  • Преобразуйте массив ячеек обратно в таблицу с cell2table и запишите новую таблицу в файл.
load cereal.mat;
table =  table(Calories, Carbo, Cups, Fat, Fiber, Mfg, Name, Potass);
s = {'This is a string about the cereal table'};
filename = "dummyoutput.sfc";

new_table = cell2table([[s repmat({''},1,size(table,2)-1)] ; table2cell(table)]);
writetable(new_table,filename,'FileType','text','WriteVariableNames',0,'Delimiter','tab');
>> !head dummyoutput.sfc
This is a string about the cereal table                          
70  5   0.33    1   10  N   100% Bran   280 
120 8   -1  5   2   Q   100% Natural Bran   135 
70  7   0.33    1   9   K   All-Bran    320 
50  8   0.5 0   14  K   All-Bran with Extra Fiber   330 
110 14  0.75    2   1   R   Almond Delight  -1 
110 10.5    0.75    2   1.5 G   Apple Cinnamon Cheerios 70 
110 11  1   0   1   K   Apple Jacks 30 
130 18  0.75    2   2   G   Basic 4 100 
90  15  0.67    1   4   R   Bran Chex   125 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...