• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab,C++存取二进制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1,Matlab存储二进制

load Wall.dat %读取数据,数组名为Wall
fid=fopen('Wall','wb'); %打开一个文件,二进制写入
fwrite(fid,Wall','float32'); %写入,浮点型32位格式写入,数组要转置,因为是按列存储的
fclose(fid); %关闭文件

 

  • 需要存储多个连续文件时,写一个循环就可以了
for ii=1:10 %连续读10个文件,以Patch开头后面跟数字和格式
    eval(['load ','Patch', int2str(ii),'.dat;'])
    eval(['Temp=Patch', int2str(ii),''';']) %读取存入临时Temp数组并且转置。
    fid=fopen(['Patch',int2str(ii)],'wb');
    fwrite(fid,Temp,'float32');
    fclose(fid);
end

2,C++读取二进制

#include <iostream>
#include <fstream>
using namespace std;
struct VECTOR
{
    float x;
    float y;
    float z;
};
void main()
{
    ifstream in("Wall",ios::binary);
    VECTOR A[4];
    for (int i = 0; i < 4; i++)
    {
        in.read((char*)&A[i].x, sizeof(float));
        in.read((char*)&A[i].y, sizeof(float));
        in.read((char*)&A[i].z, sizeof(float));
    }
    for (int i = 0; i < 4; i++)
        cout << i << "  " << A[i].x << "  " << A[i].y << "  " << A[i].z << endl;
}
  • 读取连续的文件
char temp[64];
string ss;
for(int k=0;k<10;k++)
{
    sprintf(temp,"Patch%d",k+1);
    ifstream in(temp,ios::binary);
        for(int j=0;j<n;j++)
        {
        in.read((char*)&KeyP[k][j].x,sizeof(float));
        in.read((char*)&KeyP[k][j].y,sizeof(float));
        in.read((char*)&KeyP[k][j].z,sizeof(float));
        }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab中常用希腊字母表查询发布时间:2022-07-22
下一篇:
[matlab]一道笔试题发布时间:2022-07-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap