##文件的打开与关闭

###文件的打开

fid= fopen(文件名,打开方式)

fid用于存储文件句柄值

其他函数可以利用它对该数据文件进行操作。如果返回的句柄值大于0,则说明文件打开成功

r’表示对打开的文件读数据,‘w’表示对打开的文件写数据,‘a’表示在打开的文件末尾添加数据

###文件的关闭

sta=fclose(fid)

文件在进行完读、写等操作后,应及时关闭

sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。

##二进制文件的读写操作

###使用导入模板读取二进制数据

1.选择File→Import Data选项,弹出一个文件选择对话框;也可以使用uiimport函数来打开导入数据模板。

在文件选择对话框中选择想导入数据的二进制数据文件,然后单击Open按钮,导入数据模板就会打开该文件并准备处理其内容。

选择要导入的变量。在默认情况下,导入模板将要建立的变量取决于文件中的数据类型。

4.单击Finish按钮完成数据的导入。

###使用导入函数读取二进制数据

(要从命令行或一个 M 文件中读取二进制数据,必须使用 MATLAB 导入函数)

load

aviread

cdfread

hdf

imread

wavread

xlsread

###二进制数据的存写

要以一种标准二进制格式来存写二进制数据,可以使用 MATLAB 提供的高端函数,函数的选择取决于要存写数据的类型

save

avifile

cdfwrite

hdf

imwrite

wavwrite

xlswrite

###例子一

若要以AVI格式来存写MATLAB图像,步骤如下:

用avifile函数建立一个AVI文件。

用addframe函数来捕捉图像并保存到AVI 文件中。

3.使用close函数关闭AVI文件。

(注意:若要将一个已经存在的MATLAB电影文件转换为AVI文件,需使用函数movie2avi)

函数原型为:

movie2avi(mov,filename)

movie2avi(mov,filename,param,value,param,value…)

###使用文件I/O函数

前面介绍的都是MATLAB中的一些高级函数,除此之外MATLAB还包含了一组低端的文件I/O函数,如前面介绍的所有文件的打开和关闭函数:fopen函数和fclose函数。这些函数是建立在ANSI标准C库中的I/O函数。要读写这些数据,需进行以下几步:

1.使用fopen函数打开文件。

fopen函数将会返回一个文件句柄,通过它,就可以使用其他所有的低端文件I/O函数。

2.对文件进行操作,如:

读写二进制数据

格式化读写文本数据等。

###二进制数据的读取

使用fread 函数可以读取二进制文件的数据,并将数据存入矩阵

[A,COUNT]=fread(fid,size, precision)

其中A用于存放读取的数据

COUNT返回所读取的数据元素个数,

fid为文件句柄,

size为可选项,若不选用则读取整个文件内容,

若选用则它的值可以是下列值:

1.N表示读取 N个元素到一个列向量。

2.Inf表示读取整个文件。

[M,N]表示读数据到M×N的矩阵中,数据按列存放。

precision代表读写数据的类型

###写二进制文件

使用fwrite 函数按照指定的数据类型将矩阵中的元素写入到文件

COUNT=fwrite (fid, A, precision)

fid为文件句柄

A用来存放写入文件的数据

recision用于控制所写数据的类型,其形式与fread函数相同。

##文本数据文件的读写操作

###读文本文件

[A,COUNT]= fscanf (fid, format, size)

COUNT返回所读取的数据元素个数

format用以控制读取的数据格式,由%加上格式符组成,常见的格式符有d,f,c,s。

size为可选项,决定矩阵A中数据的排列形式

fscanf可以读取txt也可以读取dat。

Load读取数值数据,并要求数据必须是长度相同的

读取双精度浮点数——%g

读入一个字符串,遇空格结束 ——%s

###写文本文件

COUNT= fprintf(fid, format, A)

其中A存放要写入文件的数据

先按format指定的格式将数据矩阵A格式化,然后写入到fid所指定的文件。格式符与fscanf函数相同。

clear

clc

close all

N = 100;

R = rand(1, N);

fid = fopen('ttt.txt', 'wt');

for k = 1: N;

p = num2str(R(k));

fprintf(fid, '%c', p);

fprintf(fid, '%c\n', ' ');

end

fclose(fid);

###常用读取数据文件的高级函数

textread函数从数据文(txt/dat/m/csv)中读取格式化的数据或字符,并可以指定变量名,格式如下: [a,b,c,…]=textread(‘文件名’,格式);

最简单的用法还是: c=textread(‘文件名’)

xlsread可以直接读取Excel文件,并可以指定变量名,格式如下:d=xlsread(‘C:\matlab2009b\work\a.xls’);

excel link 是 matlab 与 excel 交叉使用的一个加载宏.可见http://blog..net/taoyingzhushui/article/details/7547934

feof 函数

用来判断是否到达文件末尾。调用方式如下:

eofstat=feof(fid)fid为文件句柄。eofstat是返回值,当到达文件末尾时,eofstat为1;否则为0——若要重新设置指针到起始位置,就可以直接使用frewind函数。或者关闭后重新打开。

####如果不需要考虑读取文件夹和文件的顺序问题,可以使用genpath命令。

1.如还是需要读取“D:\big data\”目录下面文件夹,

2.p = genpath(fullfile(‘D:’,‘big data’));

3.语句将“D:\big data\”文件夹下面的文件读入字符数组p中,所有文件夹的目录都存储在一个字符数组p中并以分号作为分割,

4.使用时需要将改字符数组中各个文件夹的路径分开。

####如果需要读取一个文件夹中的所有文件并且不需要按照顺序读取,可以使用

A = dir(fullfile(path{i,1}, ‘*.bmp’))

该语句将构建一个结构体数组,数组中元素数量就是文件夹中文件数量,每个元素的.name字段,就是一个文件的文件名。

###例子二

function dataout = just_do_it(filein, fileout, line)

fidin = fopen(filein, ‘r’);

fidout = fopen(fileout, ‘w’);

nline = 0;

while ~feof(fidin)

tline = fgetl(fidin);

nline = nline + 1;

if nline == line

fprintf(fidout, ‘%s\n’, tline);

dataout = tline;

end

end

fclose(fidin);

fclose(fidout);

###例子三

clear

clc

close all

path = {}; %字符串数组

for i = 1:21

path = [path ; ‘D:\big data’ num2str(i) ‘’];

end

for i = 1:21 %读取文件夹

for j = 1:24 %读取24小时的图像文件

filename = [path{i,1} num2str(j) ‘.bmp’]

end

end

% 源自:百度的matlab吧:http://tieba.baidu.com/f?kz=89539696

% 《matlab中读取多个文件夹和多个文件的方法》

###例子四

clear

clc

close all

p = genpath(fullfile(‘D:’, ‘big data’));

length_p = size§;

length_p = length_p(1,2);

path = {}; %建立一个单元数组,数组的每个单元中包含一个目录

temp = [];

for i = 1: length_p

if p(i) ~= ‘;’

temp = [temp p(i)];

else

temp = [temp ‘’];

path = [path; temp];

temp = [];

end

end

%上面一段程序将字符数组p中的各个文件夹

%路径分开,并以列向量形式存储在元胞数组path中。

###例五:使用matlab的textread函数批量导入里面全部是纯数值的文本

源自http://blog.163.com/wujiaxing009@126/blog/static/719883992012554310348/

clear

clc

close all

getfilename=ls('d:\big data\*.txt');

filename = cellstr(getfilename); %将字符型数组转换为cell型数组,相当于str2cell,但是matlab中没有后面一个函数

num = length(filename);%得到所有txt文件的个数

stock(num) = struct('Name',filename(num),'Data',textread(filename{num}));

%使用struct关键字建立结构体

%注意filename(num)与filename{num}所得到的结果是不同的,前者有一对

for ii=1: num - 1

stock(ii) = struct('Name',filename(ii),'Data',textread(filename{ii}));

end

##文件读取的例子

###读取图像

用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等。比如f = imread(‘chestxray.jpg’);

读进来的图像数据被保存在变量f中。如果图片是彩色的,可以用rgb2gray转换成灰度图:

###读取数据库数据

连接

调用格式:

conna=database(‘datasourcename’,’username’,’password’);

如conna=database(‘SampleDB’,’’,’’);其中SampleDB为上文中创建的数据源名称,当默认情况下,数据库文件的username和password为空。

建立并打开游标——exec

调用格式:

curs=exec(conna,‘sqlquery’);

如curs=exec(conna,‘select * from database’)

其中conna为上文中链接对象,select * from database表示从表database中选择所有的数据,为SQL语句。

3. 把数据库中的数据读取到Matlab中——fetch

调用格式:

curs=fetch(curs,RowLimit);

Data=curs.Data;%把读取到的数据用变量Data保存.

如curs=fetch(curs);

把所有的数据一次全部读取到Matlab中,RowLimit为每次读取的数据参数的行数,默认为全部读取,但是全部读取会很费时间(和计算机性能很大关系)。

clear

clc

close all

conn = database(databaseName,userName,password);

dbmeta = dmd(conn);

tablesList = tables(dbmeta,strCatalog);%获得表名

curs0=exec(conn,'select count(*) from stock_vw');

setdbprefs('datareturnformat','numeric');

tmp0=fetch(curs0);

data_total=tmp0.data;

###数据文件定位

MATLAB提供了与文件定位操作有关的函数fseek和ftell。fseek函数用于定位文件位置指针

status=fseek(fid, offset, origin)

其中fid为文件句柄,offset表示位置指针相对移动的字节数,origin表示位置指针移动的参照位置。若定位成功,status返回值为0,否则返回值为–1。

ftell函数返回文件指针的当前位置

position=ftell (fid)

返回值为从文件开始到指针当前位置的字节数。若返回值为–1表示获取文件当前位置失败。

setdbprefs matlab,matlab数据导入与导出相关推荐

  1. adams数据导出matlab,adams数据导入matlab

    Matlab 数据导入方法在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文 件.MATLAB 使用多种格式打开和保存数据.本章将要介绍 MATLAB 中文件...... adam ...

  2. java导出csv文件_R语言数据导入与导出

    R语言数据导入与导出 整这么一个系列,还是因为学R语言时遇到过一个非常"小白友好"的网站"DataScience Made Simple".相信很多人搜到过这个 ...

  3. csv导入pgsql不成功_数据科学 | pandas数据导入与导出

    ↑↑↑↑↑点击上方蓝色字关注我们! 『运筹OR帷幄』原创 作者:杨士锦 周岩 书生 编者按 当我们开始着手做一个数据分析项目时,选择和导入数据集是第一个步骤,而导出数据虽然非必需,但有时候我们也需要保 ...

  4. GEE系列:第4单元 Google 地球引擎中的数据导入和导出

    GEE从入门到实战的10个系列单元: GEE系列:第1单元 Google地球引擎简介 GEE系列:第2单元 探索数据集 GEE系列:​第3单元 栅格遥感影像波段特征及渲染可视化 GEE系列:第4单元 ...

  5. memcached命令行memcached数据导入和导出PHP链接memcached memcach

    memcached命令行 memcached数据导入和导出 PHP链接memcached 先安装php的memcache扩展 cd /usr/local/src/ wget  http://www.a ...

  6. 金算盘导出oracle,金算盘软件数据导入和导出操作方法.doc

    金算盘软件数据导入和导出操作方法 金算盘软件维护集锦 此为201003版本,本期讲一下"导入导出"的一些注意事项,以"往来期初"导入导出为例. 导入导出这个功能 ...

  7. oracle数据的导入和导出,Oracle入门教学--数据导入和导出

    数据导入和导出 一.数据导入工具 1.利用PLSQL直接进行数据表的粘贴 (1)下载测试表 (2)打开准备导入的文件并进行创建数据库表的SQL语句编辑 A.复制表头到新的sheet B.选择粘贴 C. ...

  8. 第二节 MATLAB中图像数据导入、导出和转换

    图像数据的导入和导出,图像类型和类的转换 MATLAB® 中的基本数据结构体(数组)天然适合表示图像.使用工具箱函数,您可以从支持的图形文件或科学文件格式将图像数据导入工作区.反过来,您也可以将数据从 ...

  9. matlab中的数据导入和导出

    在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1  数据基本操作 本 ...

  10. matlab导入地图文件,matlab 外部数据导入方法详解

    在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1 数据基本操作 本节 ...

最新文章

  1. slab 内存分配器介绍(一)
  2. IO Streams:缓冲流
  3. centos纯命令行配置java环境
  4. 【micropython】用python来进行BadUSB的USB-HID测试(含无线控制)
  5. 嫁人要嫁IT男 ,嫁对了人天天都是情人节
  6. python2和python3哪个_python2与python3的区别(持续更新)
  7. openstack 云_探索OpenStack云案例研究
  8. Linux crontab 详细介绍及执行php
  9. 光流(六)--L2范数Horn–Schunck 光流法及应用demo
  10. 雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建链接按钮
  11. 学qt的都干什么工作_【板绘前景】学板绘可以干什么工作?学多久才可以工作?好学吗?...
  12. linux手机拍照翻译软件,有没有直接拍照就可以翻译的软件-拍照翻译app哪个好用...
  13. 象棋马走日步数计算流程图
  14. django cleaned_data
  15. 2017.02.18 这一周的面试
  16. 蓝牙控制esp32单片机(三)
  17. [概念]PMP,项目管理
  18. 4年工作:从量变到质变(公开版)
  19. 2019年TI杯 简易电路特性测试仪 制作过程(4)——程序总体分析 20/04/20
  20. Open3d基础控件

热门文章

  1. CSOL NST1007 V1.0 完整汉化版发布
  2. CE修改植物大战僵尸-阳光基址(小宇特详解)
  3. 2010年终总结报告
  4. 在zbox安装ubuntu18
  5. JWT结果功能用处简单介绍
  6. osgearth各版本源码下载
  7. html肤质测试,皮肤致敏试验
  8. 杂谈随想第002篇:博客访问量破万的想法
  9. android 输入法字典_Android输入法-创建输入法
  10. Godaddy、Lunarpages、IXwebhosting国外三大主机点评