vs存储dat文件,在matlab读取进行操作
最近,需要验证c与matlab进行的同一个下变频,下采样操作结果是否一致,于是,需要将c处理后的数据存储下来,在matlab读取,发现自己对c读取文件的操作并不是很熟悉,于是,对此,进行一番总结。
在vs里面随机生成100个float数据,然后存为dat文件,最后在matlab端进行读取;
vs
#include<iostream>
#include<ctime>
#include<string>
using namespace std;
int main()
{
//生成随机float
srand((float)time(0));
float *num = new float[100];
for (int i = 0; i < 100; i++)
num[i] =((float) rand())/10000;
for (int i = 0; i < 100; i++)
{
if (i % 10 == 0)
cout << endl;
cout << num[i] << " ";
}
//存储
FILE *f_float = NULL;
errno_t err;
string filename = "D:/visualStudio/FILE_storedat/" + to_string((int)1000) + ".dat";
err = fopen_s(&f_float, filename.c_str(), "wb");
if (err != 0) {
printf(" Open failed\n");
return 1;
}
else
printf(" Open success\n");
fwrite(num,sizeof(float),100, f_float);
fclose(f_float);
return 0;
}
matlab
clc;clear;close;
fid=fopen('1000.dat','rb');
data=fread(fid,'float')
fclose(fid);
可以看出,结果一样;
了解到,c++可以通过fstream来读取文件,以后再来进行补充
CSDN博客搬运 文章被收录于专栏
CSDN博客搬运