преобразование матрицы с заголовками в файл .txt - PullRequest
2 голосов
/ 18 ноября 2011

Если у меня есть матрица измерений [mn], и мне нужно импортировать матрицу в файл .txt с разделителями табуляцией, я бы использовал:

dlmwrite (Filename, Data, 'delimiter', '\ t');

Однако что мне нужно делать, если мне требуется заголовок над каждым столбцом в TXT-файле?Где мне нужно определить каждый отдельный столбец, который ссылается на разные наборы данных.

спасибо

Ответы [ 3 ]

2 голосов
/ 19 ноября 2011

Сильвадо имеет правильную идею.Вот хак, который я использую время от времени:

outfile = '/path/to/file/output.out';
data = magic(5);
header='feat1,feat2,feat3,feat4,feat5'; 
dlmwrite(outfile,header,'delimiter','');
dlmwrite(outfile,data,'delimiter',',','-append');

В результате получается CSV-файл с заголовками в качестве первой строки.Обратите внимание, что хак состоит в том, чтобы передать пустой разделитель '' в dlmwrite вместе с предварительно скомпилированным заголовком (вы можете создать это в цикле для автоматизации).Если производительность является серьезной проблемой, вам может быть лучше использовать низкоуровневые функции.

1 голос
/ 30 августа 2012

Я предпочитаю хорошо выровненные столбцы, создаваемые save, и использую dlmwrite, чтобы получить правильные заголовки.

outfile = '/path/to/file/output.out';
data = magic(5);
header='feat1  feat2  feat3  feat4  feat5'; 
dlmwrite(outfile, header, 'delimiter', '');
save(outfile, data, '-ascii', '-append');
1 голос
/ 18 ноября 2011

Вам, вероятно, нужно сначала написать заголовки столбцов, используя низкоуровневый файловый ввод-вывод, например, fprintf. Затем вы можете записать свою матрицу в тот же файл, используя опцию '-append' для dlmwrite.

...