Как я могу добавить массив ячеек в файл .txt? - PullRequest
2 голосов
/ 30 декабря 2010

Ранее я запрашивал , включая матрицы и строки в файле .txt . Теперь мне нужно добавить к нему клетки. Из моего предыдущего вопроса:

str = 'This is the matrix: ';
mat1 = [23 46; 56 67];
fName = 'output.txt';
fid = fopen(fName, 'w');
if fid >= 0
    fprintf(fid, '%s\n', str);
    fclose(fid);
end
dlmwrite(fName, mat1, '-append', 'newline', 'pc', 'delimiter', '\t');

Теперь я хочу добавить строку: ' Удаленные идентификаторы ', а затем этот массив ячеек под ним:

'ABC' [10011] [2]
'DEF' [10023] [1] 

Некоторые соответствующие ссылки:

http://www.mathworks.com/help/techdoc/ref/fileformats.html, http://www.mathworks.com/support/solutions/en/data/1-1CCMDO/index.html?solution=1-1CCMDO

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

К сожалению, вы не можете использовать такие функции, как DLMWRITE или CSVWRITE для записи массивов данных ячеек.Однако, чтобы получить желаемый результат, вы все равно можете использовать один вызов FPRINTF , но вам нужно будет указать формат всех записей в строке массива ячеек.Основываясь на моем ответе на ваш предыдущий вопрос , вы добавите следующие дополнительные строки:

str = 'The removed identifiers are: ';   %# Your new string
cMat = {'ABC' 10011 2; 'DEF' 10023 1};   %# Your cell array
fid = fopen(fName,'a');                  %# Open the file for appending
fprintf(fid,'%s\r\n',str);               %# Print the string
cMat = cMat.';                          %'# Transpose cMat
fprintf(fid,'%s\t%d\t%d\r\n',cMat{:});   %# Print the cell data
fclose(fid);                             %# Close the file

И новое содержимое файла (включая старый пример) будет выглядеть так:

This is the matrix: 
23  46
56  67
The removed identifiers are: 
ABC 10011   2
DEF 10023   1
0 голосов
/ 30 декабря 2010

Вы можете использовать cellwrite из File Exchange .Чтение Запись смешанных данных С MATLAB из Фрэнсис Барнхарт , создатель CellWrite может стоить взглянуть.принять дескриптор файла.Позволяет добавить данные в уже существующий файл.

...