怎样读取dta格式文件
① 声发射数据文件是.DTA文件格式,如何将这种文件格式转入到MATLAB分析软件中
你可以从dat文件中把数据都出,存为一个矩阵,然后就可以对该矩阵做分析,比如四则运算和变换等操作。下面的例子是将数据写为dat文件,然后从dat文件中读出的范例,供你参考。
%初始化矩阵
result = zeros(10,10);
[nRow, nColumn] = size(result);
nSize = nRow * nColumn;
%将矩阵存入文件中
fid = fopen(filename,'rb');
if (fid==1)
error('Cannot open image file...press CTRL-C to exit ');
end
temp = fwrite(fid, result', 'uchar');
fclose(fid);
%从文件中读取数据,并存入矩阵
fid = fopen(filename,'rb');
if (fid==1)
error('Cannot open image file...press CTRL-C to exit ');
end
temp = fread(fid, nSize, 'uchar');
fclose(fid);
result = reshape(temp, [nRow nColumn])';
② 如何读取DAT文件内容
//调用时, 只要 readFile("C:\\test.dat");
public String readFile(String path) throws IOException...{
File file=new File(path);
if(!file.exists()||file.isDirectory())
throw new FileNotFoundException();
BufferedReader br=new BufferedReader(new FileReader(file));
String temp=null;
StringBuffer sb=new StringBuffer();
temp=br.readLine();
while(temp!=null)...{
sb.append(temp+" ");
temp=br.readLine();
}
return sb.toString();
}
③ matlab读取dat文件
这是我之前处理心电数据时的程序。
心电数据是dat,不知道符不符合你的咯。
%-------------------------------------------------------------------------
% 程序Fun_ReadECGData 用于读取ECG信号数据,将原始的二值数据转换为十进制数
% 输入参数及其示例:
% PATH= 'D:/MATLAB/R2007b/work/ECG Data'; % 指定数据的储存路径
% HEADERFILE= '117.hea'; % .hea 格式,头文件,可用记事本打开。这个其实只是记录你的dat数据的一些信息的
% DATAFILE='117.dat'; % .dat 格式,ECG 数据
% SAMPLES2READ=2048; % 指定需要读入的样本数
% % 若.dat文件中存储有两个通道的信号:
% % 则读入 2*SAMPLES2READ 个数据
% 输出参数:M —— 一个SAMPLES2READ行2列的数据矩阵,每列数据代表一个通道的信号值
%-------------------------------------------------------------------------
function M = Fun_ReadECGData(PATH,HEADERFILE,DATAFILE,SAMPLES2READ)
%------ LOAD HEADER DATA --------------------------------------------------
%------ 读入头文件数据 -----------------------------------------------------
%
% 示例:用记事本打开的117.hea 文件的数据
%
% 117 2 360 650000
% 117.dat 212 200 11 1024 839 31170 0 MLII
% 117.dat 212 200 11 1024 930 28083 0 V2
% # 69 M 950 654 x2
% # None
%
%-------------------------------------------------------------------------
%-------------------------------------------------------------------------
% 【注】函数 fprintf 的功能将格式化的数据写入到指定文件中。
% 表达式:count = fprintf(fid,format,A,...)
% 在字符串'format'的控制下,将矩阵A的实数数据进行格式化,并写入到文件对象fid中。该函数返回所写入数据的字节数 count。
% fid 是通过函数 fopen 获得的整型文件标识符。fid=1,表示标准输出(即输出到屏幕显示);fid=2,表示标准偏差。
%-------------------------------------------------------------------------
fprintf(1,'//n$> WORKING ON %s .../n', HEADERFILE); % 在Matlab命令行窗口提示当前工作状态
signalh= fullfile(PATH, HEADERFILE); % 通过函数 fullfile 获得头文件的完整路径
fid1=fopen(signalh,'r'); % 打开头文件,其标识符为 fid1 ,属性为'r'--“只读”
z= fgetl(fid1); % 读取头文件的第一行数据,字符串格式
A= sscanf(z, '%*s %d %d %d',[1,3]); % 按照格式 '%*s %d %d %d' 转换数据并存入矩阵 A 中
nosig= A(1); % 信号通道数目
sfreq=A(2); % 数据采样频率
clear A; % 清空矩阵 A ,准备获取下一行数据
for k=1:nosig % 读取每个通道信号的数据信息
z= fgetl(fid1);
A= sscanf(z, '%*s %d %d %d %d %d',[1,5]);
dformat(k)= A(1); % 信号格式; 这里只允许为 212 格式
gain(k)= A(2); % 每 mV 包含的整数个数
bitres(k)= A(3); % 采样精度(位分辨率)
zerovalue(k)= A(4); % ECG 信号零点相应的整数值
firstvalue(k)= A(5); % 信号的第一个整数值 (用于偏差测试)
end;
fclose(fid1);
clear A;
%------ LOAD BINARY DATA --------------------------------------------------
%------ 读取 ECG 信号二值数据 ----------------------------------------------
%
% 说明:.dat 文件的数据格式
%
% 用 uint8 格式读入 N 个样本,存入矩阵 A 中,则 A 有 N 行、3列,每列一个字节,
% 即每行用三个字节表示两个数m1、m2,每个数 12 bits,故又称为 212 格式
% m1的低8位存放在 A(:,1),m2的低8位存放在A(:,3),
% m1的高4位存放在A(:,2)的低4位,m2的高4位存放在A(:,2)的高4位
%
% 根据上述数据格式,可以用一系列移位、位与操作,提取出十进制格式的双通道信号数据
%
%-------------------------------------------------------------------------
if dformat~= [212,212], error('this script does not apply binary formats different to 212.'); end;
signald= fullfile(PATH, DATAFILE); % 读入 212 格式的 ECG 信号数据
fid2=fopen(signald,'r');
A= fread(fid2, [3, SAMPLES2READ], 'uint8')'; % 矩阵A共有SAMPLES2READ行、3列,每列数据都是以uint8格式读入,注意这时数据通过uint8的读入方式已经成为十进制数了
fclose(fid2);
M2H= bitshift(A(:,2), -4); % 字节向右移四位,即取字节的高四位,属于信号2的高4位
M1H= bitand(A(:,2), 15); % 取字节的低四位,属于信号1的高4位
PRL=bitshift(bitand(A(:,2),8),9); % sign-bit 取出字节低四位中最高位,向左移九位
PRR=bitshift(bitand(A(:,2),128),5); % sign-bit 取出字节高四位中最高位,向左移五位
M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL; % 将M1H、M2H分别左移8位,即乘以2^8,再分别加上A(:,1),A(:,2),
M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR; % 由于左移时把符号位也移动了,要减去符号位的值
M=M'; % 为了方便后期的数据处理,将输出矩阵 M 转置为2行SAMPLES2READ列
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%下面是调用啦。。。
%%%%%%%%%%%%%%%%%%%%%%
clear.clc.
PATH='E:\xiangmu\MIT-BIN';
A=[];
for i=100:131
HEADERFILE= strcat(num2str(i),'.hea'); % .hea 格式,头文件,可用记事本打开
DATAFILE=strcat(num2str(i),'.dat'); % .dat 格式,ECG 数据
SAMPLES2READ=2048; % 指定需要读入的样本数
A(i-99,:)=Fun_ReadECGData(PATH,HEADERFILE,DATAFILE,SAMPLES2READ);
end
save A
④ dat格式的文件怎么打开
dat这个文件没有规定是什么格式的,意思就是DATA,数据文件的意思,具体都是由软件定制的,一般是什么软件弄出来的只能用那个软件打开才有意义。当然用十六进制软件打开是可以的。不过一般显示出来的都是乱码,也可能有一些可以看懂的有用的东西。
[s:162]
⑤ dta格式文件如何读取数据
1、dta文件有两种,一种是VCD文件,可以用常用的播放器如QQ影音,暴风影音或者Windows Media Player直接打开。
2、还有一种是加密的数据库文件,这样的数据库文件多是用特殊的加密算法合成的文件,把这个文件的后缀改成DTA文件的,是不能打开的。
⑥ C++用什么方法可以读取文件.dat后缀格式的文件
程序读取文件只区分是二进制文件还是文本文件,对文件后缀不感冒(也就是为什么UNIX系统的文件不必有后缀名,文件后缀只是windows系统必须的东西)
C++读取文件可以用文件流
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;
ifstream ifs("filename.dat");//以读方式打开文件
string s;//接受字符串
const size_t size_of_array = 100;//定义数组容量
int array[size_of_array];
size_t i = 0;//数组下标
while(ifs >> s)//每次读取一个字符串到s中(遇到空白字符返回,包括空格、换行、tab),因为每行一个数,所以会读取一行,读取到最后,流遇到文件结束符,流状态无效退出循环
{
sscanf(s.c_str(), "%d", &array[i++]);//格式化读取字符串中的数字
}
⑦ c语言如何读取dat文件
dat文件和普通txt文件相同,都是文本格式,使用普通文本操作函数读取即可。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.dat","r");//打开dat格式的输入文件
FILE*fp2=fopen("output.txt","w");//打开输出文件
if(fp1==NULL||fp2==NULL){//若打开文件失败则退出
puts("不能打开文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return0;
}
⑧ 怎么读取.dat文件
dat文件和普通txt文件相同,都是文本格式,使用普通文本操作函数读取即可。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.dat", "r");//打开dat格式的输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
⑨ 扩展名为DAT的文件怎么读取
DAT
视频文件
为VCD专用格式,其实编码和
MPEG格式
一样
直接
将
.DAT
改为
.MPEG
就可以用任何播放器播放
Kmplayer
v2.9.3.1214
汉化版
http://www.crsky.com/soft/5118.html
可以直接播放
DAT文件