Matlab экспортирует данные - PullRequest
0 голосов
/ 17 марта 2011

У меня есть карта памяти, с которой данные непрерывно собираются каждые 100 мс.Теперь я хочу создать текстовый файл, который содержит все данные.Этот текстовый файл также должен иметь отметку времени и иметь 5 заголовков столбцов - zeit, channel1, channel2 .... channel4.

Это код, который я мог бы написать, но я не уверен, как распечатать данные послезаголовки.Также через каждые 100 мсек поступают новые данные, которые необходимо добавить в конец файла. Метка времени имеет определенный формат, потому что позже мне нужно искать число.

% Time stamp 
A = datestr(now, 'mmmm dd, yyyy HH:MM:SS.FFF ')
format short g
datevec(A)

fid = fopen('acq.txt','w');
fprintf(fid,'%s\t',A)

A = 'Zeit';
dataName = 'channel';

fid = fopen('acq.txt','w');

fprintf(fid,'%s\t',A)  
%# loop to write the rest of the header 

x=5
for iModel = 1:x
fprintf(fid,'%s_%i\t',dataName,iModel); 
end 


data =  rand( 10,10);


fprintf( 'acq.txt' , '%i' ,data); 

1 Ответ

0 голосов
/ 17 марта 2011

Если вы не закрыли файл, нет смысла открывать его дважды.Два последовательных fprintfs помогут вам начать работу после первого fopen:

fprintf(fid,'%s\t',datestr(now, 'mmmm dd, yyyy HH:MM:SS.FFF '))
fprintf(fid,'%s\t%s1\t%s2\t%s3\t%s4\t','Zeit',dataName,dataName,dataName,dataName)

для настройки заголовков.На этом этапе не забудьте использовать fclose (fid).Теперь вы можете циклически проходить каждый раз, когда ваши данные читаются, и открывать файл для добавления fida = fopen('acq.txt','a'); с последующим выводом форматированных данных:

fprintf(fida,'%f %f %f %f %f %f %f %f %f %f\n',data')

По какой-то причине matlab отображает данные в первой строке первым, поэтомутранспонирование приводит к той же форме, что и данные, представленные в matlab.Не забудьте закрыть эти файлы, иначе вы можете столкнуться с ошибками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...