PDA

查看完整版本 : [MATLAB基础] 一个关于读数据的问题


0311
2011-08-23, 14:53
用fread命令读数据,自己写了这么一段坑爹的货:
fig=fopen(‘st.dat’,'r');
a=fread(fig,1,'int32');
fclose(fig);



然后std1d.dat文件结构说明

data file header 32字节,数据文件的头
header for block 1 数据块1的头
data of block 1 数据块1
header for block 2 数据块2的头
data of block 2 数据块2
……

当datafilehead.nbheaders=2时,表明文件是一超复数数据文件,用于存储2D FID或者谱数据。
数据文件的头结构data file header的C语言定义:
/* Used at start of each data file (FIDs, spectra, 2D) */
struct datafilehead
{
long nblocks; /* 文件中的块数目 */
long ntraces; /* 每一块中有多少trace */
long np; /* 每一trace中有多少元素 */
long ebytes; /* 每一元素有多少字节*/
long tbytes; /* 每一trace多少字节*/
long bbytes; /* 每一block中多少字节 */
short vers_id; /* 软件版本位 */
short status; /* 文件状态 */
long nbheaders; /* 每一块中有多少块头 */
};
datafilehead 结构中各变量的含义:
. nblocks:每一文件中含有的块(block)数(对于一维非阵列实验,每个文件只有一个block).


期望出现的是a=1,结果跳出来不知道什么鬼……
希望各位大大帮忙看看这是什么问题,顺便问一句fread的第二个参数是读几个数据还是读几个字节?
如果要达到目的要怎么写??????????
救命啊!!!!!