例2-1 %exam1.m

[f,message]=fopen('fileexam1', 'r')

if f==-1

disp (message); %显示错误信息

end

若文件fileexam1不存在,则显示如下信息。

Cannot open file.existence?permissions?memory?...

例2-2 %exam2.m

[f,message]=fopen('fileexam2', 'r');

if f==-1

disp (message); %显示错误信息

else

disp(f);

end

若文件fileexam2存在,则返回f值。

2.1.2 文件的关闭

(1)基本文件操作:创建、删除、读、写、截断、设置读/写位置等。视频的话网上可能没有,vbs一般不会有人去录制,要介绍的话都是基础的语法,对于写脚本或写代码你必须要有逻辑思路,这个东西不好言传只能自己去领悟,总之你要保持思路连贯,把你想要得东西声明成变量,然后这个变量有什么特点(属性),然后要干什么样的事(函数或过程),写脚本要符合你的系统业务来写,从最简单的基础语法开始学,这些网上书店到处都是,等你记牢了基础的语法后,然后你要学习多用函数或过程封装你的脚本进行调用,然后学会ado连接的sql语句,然后是shell一些操作,由于vbs可以调用com组件一些指令,你需要去了解下常用com组件,当然最好是你能去学习下.netframwork。低级文件i/omatlab低级文件i/o函数fclose 关闭文件feof 测试文件结束ferror 查询文件i/o的错误状态fgetl 读文件的行,忽略回行符fgets 读文件的行,包括回行符fopen 打开文件fprintf 把格式化数据写到文件或屏幕上fread 从文件中读二进制数据frewind 返回到文件开始fscanf 从文件中读格式化数据fseek 设置文件位置指示符ftell 获取文件位置指示符fwrite 把二进制数据写到文件里技术凝聚实力创新出版技术凝聚实力创新出版18.3.1 fopen函数 fopen函数打开一个文件并返回这个文件的文件句柄值。

fclose(f)

其中f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。一般来说,在完成对文件的读写操作后就应关闭它,以免造成系统资源浪费。此外,需注意的是,打开和关闭文件都比较耗时,因此为了提高程序执行效率,最好不要在循环体内使用文件。

若要一次关闭打开的所有文件,可以使用下面的命令:

fclose all

2.2 文 本 数 据

虽然MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式与外界进行数据交换。在文本格式中,数据采用ASCII码格式,可以表示字母和数字字符。ASCII文本数据可以在文本编辑器中查看和编辑。MATLAB提供多种函数能够进行文件读写,这些函数都是MATLAB的一部分,不需要额外的工具箱支持。

2.2.1 从文本文件中读取数据

1.使用导入模板来读取数据

使用导入模板来读取数据,需按以下步骤进行:

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

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

(3) 指定用于分开单个数据的字符,该字符称为分隔符或列分隔符。在多数情况下可以用导入模板来设定分隔符。

(4) 选择要导入的变量。在默认情况下,导入模板将所有的数值数据放在一个变量中,而将文本数据放在其他变量中。

(5) 单击Finish按钮完成数据的导入。

(3) 数据导入导出功能,可导入txt文本和csv文件,导出txt文本、tdms文件、csv文件、excel表格等数据格式文件,方便查看与进一步处理。(5) 数据导入导出功能,可导入txt文本和csv文件,导出txt文本、tdms文件、csv文件、excel表格等数据格式文件,方便查看与进一步处理。(5)数据导入导出功能,可导入txt文本和csv文件,导出txt文本、tdms文件、csv文件、excel表格等数据格式文件,方便查看与进一步处理。

english math physic

joe 80 90 60

susan 78 98 88

rob 67 90 89

图2-1 将数据通过模板导入

在图2-1中,导入模板已辨认space字符,把它作为文件中数据的分隔符,并建立了两个变量:data(包含文件中所有数值数据)和textdata(包含文件中所有文本数据)。

当导入模板正确导入文件中的数据后,就会显示它所建立的变量。要选择一个变量来导入数据,可单击它名称后面的复选框。在默认情况下,所有变量都会被选中。在导入对话框的右面显示了导入模板建立的变量内容。要查看其他变量,只需要单击该名称。在选择好要导入的变量后,单击Next按钮,如图2-2所示。

图2-2 使用模板查看各变量数据

在默认情况下,导入模板将文件中所有的数值数据放在一个变量中;若文件包含文本数据,则模板将它们放在另外一个变量中;若文件包含行或列,模板也将它们作为各自独立的变量分别称为行头和列头。

当所有导入模板创建好数据后,使用whos命令可以查看工作空间的变量。

>> whos

Name Size Bytes Class Attributes

data 3x3 72 double

textdata 4x1 314 cell

2. 使用函数来读取文本数据

若要在命令行或在一个 M 文件中读取数据,必须使用 MATLAB 数据函数,函数的选择则是依据文本文件中数据的格式。而且文本数据格式在行和列上必须采取一致的模式,并使用文本字符来分隔各个数据项,称该字符为分隔符或列分隔符。分隔符可以是space、comma、semicolon、ab或其他字符,单个的数据可以是字母、数值字符或它们的混合形式。

文本文件也可以包含称之为头行的一行或多行文本,或可以使用文本头来标志各列或各行。在了解要输入数据的格式之后,便可以使用 MATLAB 函数来读取数据了。若对 MATLAB 函数不熟悉,可从表2-2中了解几个读取函数的一些使用特征。

表2-2 读取函数的比较

函 数

数 据 类 型

分 隔 符

返 回 值

csvread

数值数据

仅cooma

1

dlmread

数值数据

任何字符

1

fscanf

字母和数值

任何字符

1

load

数值数据

仅space

1

textread

字母和数值

任何字符

多返回值

3. 读取数值文本数据

若用户的数据文件只包含数值数据,则可以使用许多MATLAB函数,这取决于这些数据采用的分隔符。若数据为矩形形状,也就是说,每行有同样数目的元素,这时可以使用最简单的命令load(load也能用于导入MAT文件,该文件为用于存储工作空间变量的二进制文件,如果文件名后缀是.dat,则MATLAB会以MAT文件格式进行读取)。

例如,文件my_data.txt包含了两行数据,各数据之间由space字符隔开。

当使用load时,它将读取数据并在工作空间中建立一个与该文件同名的变量,但不包括扩展名。

>>load my_data.txt;

调用whos命令查看工作空间的变量。

>> whos

Name Size Bytes Class Attributes

data 3x3 72 double

my_data 3x4 96 double

textdata 4x1 314 cell

此时可以查看与该文件同名的变量的值

>> my_data

my_data =

0.3242 0.4324 0.3455 0.6754

0.4566 0.9368 0.9892 0.9274

0.4658 0.2832 0.9373 0.8233

若想将工作空间的变量以该文件名命名,则可以使用函数形式的load,下面的语句将文件导入工作空间并赋给变量A

A=load('my_data.txt');

4. 读取有分隔符的ASCII数据文件

如果数据文件不使用空格符而是使用逗号或是其他符号作为分隔符,用户可以选择多个可用的导入数据函数。最简单的便是使用函数dlmread。

举个例子来说,一个名为lcode.dat的数据文件,数据内容由逗号分隔。

0.3445,0.8433,0.7865

0.7562,0.4233,0

要把该文件的全部内容读入阵列A,只须输入如下命令:

>> A=dlmread('lcode.dat',',')

即可以把数据文件中使用的分隔符作为函数dlmread的第二个参数。

注意:

即使每行的最后一个数据后面不是逗号,dlmread函数仍能正确读取数据,因为dlmread忽略了数据之间的空格符。因此,即使数据为如下格式,前面的dlmread命令仍能正常工作。

A =

0.3445 0.8433 0.7865

0.7562 0.4233 0

另外需要注意的是,分隔符只能选取单个字符,不能用字符串来作为分隔符。

5. 使用文本头读取数值数据

要读取一个包含文本头的ASCII码数据文件,可以使用textread函数,并指定头行参数。调用函数textread 同样非常简单,同时对文件读取的格式处理能力更强,函数接收一组预先定义好的参数,由这些参数来控制变量的不同方面。Textread既能处理有固定格式的文件,也可以处理无格式的文件,还可以对文件中每行数据按列逐个读取。

textread函数常见的调用方法有如下几种:

[A,B,C...]=textread('filename', 'format')

[A,B,C...]=textread('filename', 'format',N)

例如文件my_data.txt包含了如下文件内容,有一行文本头,且格式化的数值数据。

num1 num2 num3 num4

0.3242 0.4324 0.3455 0.6754

0.4566 0.9368 0.9892 0.9274

0.4658 0.2832 0.9373 0.8233

因为有文件头,要使用如下textread命令来读取文件中的数据。

[{"num1":1,"num2":2,"num3":3},{"num1":4,"num2":5,"num3":6}]。num=num1+num2/num3-num4。create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255))。

执行结果如下:

num1 =

0.3242

0.4566

0.4658

num2 =

0.4324

0.9368

0.2832

num3 =

0.3455

0.9892

0.9373

num4 =

0.6754

0.9274

0.8233

6. 读取字母数值混合的数据

若数据文件中包含了字母和数值混合的ASCII码数据,也可以使用函数textread来读取数据。由上一小节知道,函数textread可以返回多个输出变量,实际上用户还可以通过参数指定每个变量的数据类型。

例如要把文件my_exam.dat的全部内容读入工作空间,需要在textread行数的输入参数中指定数据文件的名称和格式。

文件my_exam.dat包含的混合的字母和数值如下:

Joe gradeA 4.9 pass

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shumachanpin/article-109318-1.html

matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma相关推荐

  1. 怎么用matlab读一张图像,利用matlab读取图像

    怎样用matlab读取20张图片并依次展示出来 指定路径下 单个文件夹data中所有图像 P = '.\data\';% 图像文件夹路径 img_path_list = dir(strcat(P,'* ...

  2. matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结

    本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...

  3. matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...

    Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...

  4. matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)

    本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...

  5. matlab surf颜色,科学网[转载]matlab中控制mesh或者surf的颜色

    科学网[转载]matlab中控制mesh或者surf的颜色 曲面的顏色越发柔順滑腻,del2 (Z) 根據數值微分來產生矩陣 Z 的 discrete Laplacian, Y,surf 及 mesh ...

  6. matlab中的timer模块,[转载]Matlab中Timer的使用

    Matlab中Timer的使用 鉴于Matlab中缺乏多线程机制,使用Timer无疑是一个很重要的工具,Matlab中Timer是一个Java对象. (1)Timer 的定义 t=timer(); 设 ...

  7. matlab 图像处理 新浪 应变,[转载]Matlab图像处理小结

    经常做做图像处理的东西,时间长了,有些函数就忘了,看到网上有人总结,收藏了. 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大 ...

  8. matlab imshow加画网格,[转载]matlab中imshow函数

    函数简介 imshow是matlab中显示图像的函数.在matlab的命令窗口中输入doc imshow即可得到关于该函数的帮助信息. 调用方式 imshow(I,n) imshow(I,[low h ...

  9. matlab第一次启动特别慢,[转载]Matlab启动初始化很慢的解决办法

    首先介绍一下我自己使用的有效方法,一般matlab启动初始化很慢主要的原因是在找注册文件,一般是由于安装了MAC类的软件引起的,所以我按照下文提供的方法"在[目标]中,键入如下内容" ...

最新文章

  1. Hadoop实战 -- IO
  2. 高手云集的小程序开发者“武林大会”来了!
  3. 借助精益找回敏捷的质量
  4. I.MX6 make menuconfig进入x86模式
  5. git merge/git rebase分支合并
  6. 基于AVR单片机及无线收发模块的脉搏监测系统设计
  7. 嵌入式软件分层及目录结构设计规范
  8. altium designer 网络标签作用范围(Duplicate Net Names Wire解决办法)
  9. 中国最受欢迎50大技术博客评选结果详见
  10. 微信 3.6.0 正式版来了,上班族狂喜!
  11. matlab butter()函数解析
  12. linux虚拟机重启后,telnet不通端口的排查思路
  13. realloc动态内存调整探究
  14. 使用阿里云来搭建视频直播服务
  15. matlab怎么搭建神经网络,matlab实现神经网络算法
  16. 合泰单片机市场占有率_现在市场上有哪些单片机很火的?
  17. Java中动态加载字节码的方法 (持续补充)
  18. 没有更多空间可供虚拟磁盘_为什么现代游戏需要比以往更多的磁盘空间和速度...
  19. was进程内存占用过大_linux服务器内存占用过大
  20. windows下笔记本共享wifi工具

热门文章

  1. 这个世界没有想象中的那么好,但似乎 ...... 也没那么糟
  2. 蒟蒻的单调队列orz,真的蒻
  3. 学习汇编语言-输入十进制数转为十六进制和二进制
  4. 沁恒蓝牙芯片CH57x系列学习与应用
  5. Linux学习134 Unit 5
  6. System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 1628
  7. 产品人的三个层次——老吴说产品
  8. .axf文件_Keil开发环境如何生成BIN文件
  9. 网络安全绝地求生-面试题
  10. 怎样快速将excel表格内容转换到word中