matlab数据导出

matlab数据导出,matlab,file-io,Matlab,File Io,我有一个数据采集卡,每100毫秒从中连续采集数据。现在我想创建一个包含所有数据的txt文件。这个txt文件也应该有一个时间 戳记和应有5列标题-zeit、channel1、channel2。。。。第四频道 这是我可以编写的代码,但我不知道如何在标题后打印数据。 另外,每隔100毫秒,新的数据就会出现,并且必须附加到文件的末尾。时间戳的格式是特定的,因为以后我需要搜索一个数字 % Time stamp A = datestr(now, 'mmmm dd, yyyy HH:MM:SS.FFF ')

我有一个数据采集卡,每100毫秒从中连续采集数据。现在我想创建一个包含所有数据的txt文件。这个txt文件也应该有一个时间 戳记和应有5列标题-zeit、channel1、channel2。。。。第四频道

这是我可以编写的代码,但我不知道如何在标题后打印数据。 另外,每隔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); 

如果不关闭该文件,则没有理由将其打开两次。两个连续的FPRINTF将使您在第一个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)
设置标题。此时请记住使用fclosefid。现在,您可以在每次读取数据时循环,并打开append fida=fopen'acq.txt',a'的文件;然后是格式化数据输出:

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

由于某些原因,matlab首先显示第一行中的数据,因此将其转换为与matlab中表示的数据相同的形状。记住关闭这些文件,否则可能会出错。

Oki所以基本上你的意思是我需要一个循环,首先写入标题,然后退出循环,然后写入数据,但我如何知道数据正在写入具有时间戳的正确标题下。你能把程序整理一下吗。