matlab操作(小总结1)

 

一、Matlab文件处理 1

1、打开关闭文件 1

2、读取文件 1

3、移动文件指针 2

4、文件操作的一个例子 2

二、Matlab字符文件处理 2

1、txt文件读写 2

三、Matlab字符串处理 2

1、获取字符串长度 2

2、连接字符串 2

3、字符串替换查找 3

4、字符串转换 3

5、字符串排序 3

四、元组cell和结构struct 3

1、单元数组(cell array) 3

2、结构数组(struct array) 3

五、Matlab目录操作 4

一、Matlab文件处理

1、打开关闭文件

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

打开方式有:r()w()a(追加到文件末尾)

返回的是文件句柄。

sta=fclose(fid)

通过文件句柄关闭文件。关闭成功返回0,否则返回-1

feof(fid)

判断是否到达文件末尾。是则返回true

2、读取文件

(注:以下的fid都表示文件句柄)

(1) 以二进制形式读写:(二进制文件的读写)

[a,count]=fread(fid, size, pre) —具体的查看帮助。读取的数据在a中,count存储读取数据的个数。size为可选项,不写时默认读取整个文件。

count=fwrite(fid,a,pre ) —具体的查看帮助。a中存放所需写的数据,count返回成功写入的个数。

 

(2) 格式化读写:(文本文件的读写)

[a,count]=fscanf(fid,format,size) —具体的查看帮助。读取的数据在a中,count存储读取数据的个数(count可以省略,也可以写成a=fscanf(fid,format,size))size为可选项,不写时默认读取整个文件。格式有%s, %c, %d, %f等。

count=fprintf(fid, format, a) —具体的查看帮助。a中存放所需写的数据,count返回成功写入的个数。

(3) 其他的读写方式

    读取一行:fgetl(fid)

 

3、移动文件指针

status=fseek(fid, offset, origin) —具体的查看帮助。Offset表示性对移动位置, origin表示原位置。

4、文件操作的一个例子

fid = fopen(infile,'r');     %打开文件

while ~feof(fid)

str = fgetl(fid);    %读取一行

%判断一行的开头是否是数字,是的话才操作

    if length(str)>=1 && double(str(1))>=48 && double(str(1))<=57

        fprintf(foutfile,'%s\n',str);  %将一行数据写入文件

    end

end

tempData = importdata(outfile);  

%将写入到txt文件中的数据读取出来,此时格式很好

 

二、Matlab字符文件处理

1txt文件读写

importdata(filename)

三、Matlab字符串处理

1获取字符串长度

length(str)

2连接字符串

连接连个字符串:每个字符串最右边的空格被裁切,结果是一个字符串。

strcat(a,b)

如:a=”qwe”; b=”a”; c=”etret”; d= strcat(a,b)的结果是:qwea

连接多个字符串:结果是一个二维字符串数组形式,会将短的字符串后面自动补空使之长度与最长的字符相同。

strvcat(a,b,c)

如:a=”qwe”; b=”a”; c=”etret”; d= strvcat(a,b,c)的结果是:

qwe

a

etret

3、字符串替换查找

strrep(str,str2,str3)。将str中的str1替换为str2

strfind(str,str1)。在str中查找str1。返回位置数组。

4、字符串转换

数字转换为字符串:num2str()

字符串转换为数字:str2num()

将字符串中的字母转换为小写:lower()

将字符串中的字母转换为小写:upper()

5、字符串排序

按照字符串的ascii码排序:sort()

四、元组cell和结构struct

1、单元数组(cell array

其中的每个元素为(cell)。cell可以包含任何类型的matlab数据。

一个单元数组中可以包含不同的cell

(1)创建cell数组

    利用cell函数,如:cell(2,3) 生成一个2*3cell数组。或者直接等于一个元组,如:c={[1 2 3 4]}

2)访问单元数组:两种方法

使用括号,使用花括号。

使用括号得到的是那个单元(cell)。使用花括号得到的是那个单元的具体内容。

如:b=cell(1); b{1}=[1 2 3 4]。当显示b(1)时得到[1x4 double]。而使用b{1}得到1 2 3 4

(3)赋值:有了前面访问的方法即可明白,要赋值也有两种方法。

使用括号时,须将一个cell赋给左边。使用花括号时可以直接将值赋给左边。

 

2、结构数组(struct array

(1)创建结构及结构元组

使用struct创建,struct('fieldname1',value1,'field2',value2,....); 另外创建结构可以直接如右方式:g.a=1;g.b=2

创建struct数组:直接使用结构生成数组即可:[a b c...] 其中a,b,c都是相同的结构。

(2)访问结构元组

使用括号访问其中的结构。对于结构的访问使用点运算。

(3)赋值

根据前面的基础操作,结合点操作与括号操作即可。

 

典型的应用如:目录的操作。

files=dir(‘path’); 得到的是目录下的文件列表,即一个struct的数组。n*1struct数组。

访问时:files(1).name 第一个文件的名字。

 

 

五、Matlab目录操作

dir(dirname) 读取某个目录下的文件列表。返回值是一个struct的列向量。

所以此处涉及到struct方面的知识。然后结合字符串处理的知识,即可很好的操作。

posted on 2011-07-08 11:36  windfree  阅读(4655)  评论(1编辑  收藏  举报