fid=fopen("bif.bin","wb")
fwrite(fid,A','double')%A是矩阵,double是保存文件的数据类型。A'是A的转置,原因是,在matlab中数据是按列存放,c中是按行。所以在matlab中应先进行转置,这样
%到c中读出的数据才是正确的。
2.c:
(1)c中使用fopen,读取到二维数组中
int num_read = fread(buf, 1, length, fp)
写入和读出的方式一样就行了:
给你个例子:
# include <stdio.h>#include <time.h>
#include <stdlib.h>
int main(void)
{
float u2[200][200]
float u2_1[200][200]
int i,j
FILE* fp=fopen("d:\\1.dat","wb+")
srand(time(0))
for (i=0i<200*200i++)
{
*((float*)u2+i)=rand()/100.0
}
fwrite(u2,sizeof(u2),1,fp)
fclose(fp)
fp=fopen("d:\\1.dat","rb")
fread(u2_1,sizeof(u2_1),1,fp)
fclose(fp)
for (i=0i<200i++) //验证
{
for (j=0j<200j++)
{
if (u2[i][j]!=u2_1[i][j])
{
printf("内容不同\n")
return 1
}
}
}
printf("内容相同\n")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)