日常我们使用matlab进行模型训练,每次训练需要加载的数据都是比较大,都是千万级别的数据,如果从txt或者csv中读取,需要很长时间,这样很影响读取数据的效率。matlab有自己的方式,将数据文件快速加载到内存中。

写文件:

file = fopen('E:\数据分析\login_00000.csv','r','n','utf-8');
data=textscan(file,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f','delimiter',',','EmptyValue',0,'EndOfLine','\n');
data_1 = cat(2,data{:,1:31});
fileID = fopen('login_00000.dat','w');
fwrite(fileID, data_1,'double');
fclose(fileID);
sz = size(data_1)
save login_00000.mat sz

读文件:

dir='login_00000'
load([dir,'.mat'])
m=memmapfile([dir,'.dat'],'Format',{'double' [sz(1) sz(2)] 'x'})
data=m.Data.x;

效率非常快,我们只需要第一次将我们的数据文件转为dat文件,后面每次通过memmapfile去操作文件都行,效率很高。

matlab内存映射文件操作相关推荐

  1. 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射...

    内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码. file ...

  2. 使用内存映射文件来提高你程序的性能

    本人在学习<WINDOWS核心编程>的时候对JEFFREY大师提到的一个小程序写了两个版本来比较性能,该程序的原始需求是这样的:对一个大文件进行倒序,也就是将一个文件头变成尾,尾变成头. ...

  3. windows笔记-内存映射文件

    Windows提供了3种进行内存管理的方法: • 虚拟内存,最适合用来管理大型对象或结构数组. • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据. ...

  4. Windows核心编程 第十七章 -内存映射文件(下)

    17.3 使用内存映射文件 若要使用内存映射文件,必须执行下列操作步骤: 1) 创建或打开一个文件内核对象,该对象用于标识磁盘上你想用作内存映射文件的文件. 2) 创建一个文件映射内核对象,告诉系统该 ...

  5. Windows核心编程 第十七章 -内存映射文件(上)

    第1 7章 内存映射文件 对文件进行操作几乎是所有应用程序都必须进行的,并且这常常是人们争论的一个问题.应用程序究竟是应该打开文件,读取文件并关闭文件,还是打开文件,然后使用一种缓冲算法,从文件的各个 ...

  6. Java基础:JavaNIO 之 内存映射文件原理

    1. 前言 最近研究Java中内存映射I/O.Java类库中的NIO中的内存映射文件MappedByteBuffer,相对于Java I/O是一个新的功能.特把适合用于处理大文件,在对大文件处理的时候 ...

  7. 《windows核心编程》 17章 内存映射文件

    内存映射文件主要用于以下三种情况: 系统使用内存映射文件载入并运行exe和dll,这大量节省了页交换文件的空间以及应用程序的启动时间 开发人员可以使用内存映射文件来访问磁盘上的数据文件.这使得我们可以 ...

  8. 内存映射文件——Windows核心编程学习手札之十七

    内存映射文件 --Windows核心编程学习手札之十七 与虚拟内存一样,内存映射文件保留地址空间,并将物理存储器提交给该区域,差别在于所提交的物理存储器是磁盘上有文件存在的空间,而非系统的页文件,一旦 ...

  9. C#内存映射文件学习总结

    C#内存映射文件学习 http://www.cnblogs.com/flyant/p/4443187.html 内存映射文件是由一个文件到进程地址空间的映射. C#提供了允许应用程序把文件映射到一个进 ...

最新文章

  1. 呼伦湖国家级自然保护区管理局投放草料保野生黄羊过冬
  2. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  3. 跟我学爬虫-1-爬虫简介
  4. JZOJ 2308. 【中山市选2011】聚会
  5. 如何用 Gitlab 做团队内的 Code Review
  6. 公司来了个傻员工,改变了所有聪明的员工
  7. hadoop关联文件处理
  8. 内存分配,任意字节对齐
  9. 获得网页中元素的位置
  10. suse linux vnc 桌面号,在SUSE Linux下安装VNC的方法
  11. 软件工程网络15个人作业3--案例分析
  12. Java实现 俄罗斯方块(简陋版)
  13. scrum敏捷开发项目管理工具必备
  14. c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b....
  15. Android Title标题栏的修改(隐藏,菜单)
  16. python 表情包 gif,用 Python 开发一个【GIF表情包制作神器】
  17. Reggie外卖项目 —— 开发环境搭建
  18. 鼠标事件界面转换 mouseover() 方法
  19. 项目里 基于solr搜索服务的认识
  20. VM使用-pin针同心度检测

热门文章

  1. ADS仿真,3db均衡器是否可以补偿3db插入损耗?
  2. Java 岗史上最全八股文面试真题汇总,堪称 2023年面试天花板
  3. Android如何获取第三方app的控件id
  4. Windows系统安装————windows7 企业版 无法安装 NET.framework4.52-4.6版本在WIN7下解决办法...
  5. linux定时任务 - CRON表达式
  6. ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)
  7. Faster-rcnn模型下载
  8. 使命召唤手游需要的配置及要求
  9. Grafana Query类型模板变量的使用
  10. 苹果cms明星数据库文件、免采集使用