Matlab数据写入MySQL与文件操作教程

一、文件打开和关闭

在MATLAB中处理文件读写的函数有多个,像Load、Save命令能处理MATLAB本身创建的简单格式文件的读写;

而imread、imwrite命令可方便地读写一些常用图像格式文件;

但对一般化的文件读写,还是要靠Fread、Fwrite等低级文件I/O命令来处理。

1.打开文件

  • fid=fopen('文件名','模式'):以指定模式打开文件,返回文件指针
  • [fid,message]=fopen('文件名','模式'):同时还有信息返回
  • fids=fopen('all'):打开所有文件,返回它们的文件指针作为行向量fids
  • Filename=fopen(fid):根据已打开文件的指针返回文件名

2.关闭文件

  • status=fclose(fid)
  • status=fclose('all')

成功关闭文件将返回0,失败将返回-1

3.文件打开的常用模式

模式含义'r'打开文件读'r+'打开文件读写'w'删除已存在的文件的内容或新建一文件,并打开文件写'w+'删除已存在的文件的内容或新建一文件,并打开文件读写'a'打开一个新文件或已有文件,在文件结尾处添加内容'a+'打开一新文件或一已有文件读写,在文件结尾处添加内容

文件可以按文本格式打开,只要打开模式中带上字符t,此时,行分隔符在从文件读出时自动删除,写入文件时自动添加;

文件也可按二进制方式打开,只要打开模式中带上字符b,此时进行文件读写不会对分隔符进行处理。

成功打开文件后,返回的文件指针是一个非负整数,如打开失败,返回-1。

示例:

fid=fopen('mytest.mat','r') [fid,message]=fopen('data.txt','rt')1.2.

二、读写二进制数据(fread、fwrite)

1.读:[A,count]=fread(fid,size,precision,skip)

  • 功能:将fid指示的文件中读取size个精度为precision的数据存入矩阵A中,并返回成功读取数据的个数存入count中;
  • 参数skip(可省略)指定每读取一个数据要跳过skip个字节再读下一个数据;
  • 参数size若省略则读到文件尾,它还能采用[m,n]形式,表示读出数据个数为m×n矩阵的元素总数,且按照列的顺序排列,若文件中数据不够,自动补零;
  • 精度precision参数是一个字符串,指定所读取数据的数据类型,如‘int’、‘float’、‘char’等。

2.写:count=fwrite(fid,A,precision,skip)

  • 功能:把矩阵A中数据以precision指示的数据类型写入到fid指定的文件中,并返回成功写入的数据个数给count;
  • 其中各参数含义同fread。

3.示例

t=1:100; fid1=fopen('test.mat','wb+'); count=fwrite(fid1,t,'int'); fclose(fid1); fid2=fopen('test.mat','rb') A1=fread(fid2,[5,4],'int') A2=fread(fid2,5,'int',4) status=fclose('all')1.2.3.4.5.6.7.8.

三、读写有格式文件的数据(fscanf、fprintf)

1.读:[A,count]=fscanf(fid,format,size)

  • 功能:从fid指示的文件中读取size个用参数format规定格式的数据存放到矩阵A中,count为成功读取的数据个数。
  • 参数size取值与fread类似。
  • 参数format所取的格式字符串和C语言基本相同,都以“%”开头,以格式变换符号结尾,如:“%s”、“%f”、“%d”、“%10.3”、“%g”、“%i”、“%o”、“%u”、“%x”等等。

2.写:count=fprintf(fid,format,A,…)

  • 功能:把矩阵A的数据按照format规定写到fid指定的文件中,并返回成功写入的字节数;
  • 若省略参数fid,则默认输出到标准输出设备(屏幕)

3.示例

t=1:5; s1=sin(t); s2=cos(t); s=[t;s1;s2]; fid1=fopen('test.dat','wt'); fprintf(fid1,'\nThis is a Formated file\n'); fprintf(fid1,'\n%4d %+12.5E %+12.5E\n',s); fclose(fid1); fid2=fopen('test.dat','rt'); [A1,count1]=fscanf(fid2,'%s',5); [A2,count2]=fscanf(fid2,'%4d %e %e',[3,inf]); A2=A2'; fclose(fid2);1.2.3.4.5.6.7.8.9.10.11.12.13.

四、函数fgetl和fgets

  • line=fgetl(fid):调用格式。将fid中下一行以字符串形式返回给line(不包括行结束符,如遇到文件尾则返回-1)
  • line=fgets(fid,nchar):调用格式。从fid指示的文件中,读出下一行不超过nchar个字符的字符串,包括行的结束符,如遇文件结尾则返回-1。另外,参数nchar可省略,即不受字符数限制。
  • line=fgets(fid,nchar):移动文件的位置指针方法。功能是从fid指示的文件中,读出下一行不超过nchar个字符的字符串,包括行的结束符,如遇文件结尾则返回-1。另外,参数nchar可省略,即不受字符数限制。
  • pos=ftell(fid):报告当前位置方法调用格式。功能是返回当前位置距文件头的字节数。
  • frewind(fid)函数的调用可将文件位置指针放置在文件头
  • feof(fid)可测试fid所指文件是否设置了文件尾指示符。    

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空