matlab数据导出
我有一个数据采集卡,每100毫秒从中连续采集数据。现在我想创建一个包含所有数据的txt文件。这个txt文件也应该有一个时间 戳记和应有5列标题-zeit、channel1、channel2。。。。第四频道 这是我可以编写的代码,但我不知道如何在标题后打印数据。 另外,每隔100毫秒,新的数据就会出现,并且必须附加到文件的末尾。时间戳的格式是特定的,因为以后我需要搜索一个数字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 ')
% 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所以基本上你的意思是我需要一个循环,首先写入标题,然后退出循环,然后写入数据,但我如何知道数据正在写入具有时间戳的正确标题下。你能把程序整理一下吗。