[转载]在Matlab中保存文件及导入文件
(2013-01-10 20:35:15)
标签:
转载 |
分类: matlab应用 |
(1) M文件,以.m为扩展名,所以称为M文件。M文件是由一系列MATLAB语句组成的文件,包括命令文件和函数文件两类,命令文件类似于其他高级语言中的主程序或主函数,而函数文件则类似于子程序或被调函数。
MATLAB众多工具箱中的(函数)文件基本上是M函数文件。因为它们是由ASCII码表示的文件,所以可由任一文字处理软件编辑后以文本格式存放。
(2) 数据文件,以.mat为扩展名,所以又称MAT文件。在讨论工作空间窗口时已经涉及到MAT文件。显然,数据文件保存了MATLAB工作空间窗口中变量的数据。
(3) 图形文件,以.fig为扩展名。主要由MATLAB的绘图命令产生,当然也可用File菜单中的New命令建立。
(4) MEX 文件,以.mex或.dll为扩展名,所以称MEX 文件。MEX 实际是由MATLAB Executable缩写而成的,由此可见,MEX文件是MATLAB的可执行文件。
(5) 模型和仿真文件,模型文件以.mdl为扩展名,由Simulink仿真工具箱在建立各种仿真模型时产生。仿真文件以.s为扩展名。
转自:http://liangshzh0816.blog.163.com/blog/static/34776762010634430585/matlab中如何读取TXT数据文件
下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。
function dataout=dataread(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,'%sn',tline);
dataout=tline;
end
end
fclose(fidin);
fclose(fidout);
%%%%%%%%%%%%%%%%%%%%%%%%%%
调用格式:dataout=dataread(filein,fileout,line)
如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据
a=textread('ll.txt');
t=a(1:43,4:10);
1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。
根据txt文档不同种类介绍不同的读取数据方法
转自:http://hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb
一、纯数据文件(没有字母和中文,纯数字)
对于这种txt文档,从matalb中读取就简单多了
例如test.txt文件,内容为“17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045”
可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt
“你好
欢迎来到
振动论坛
vib.hit.edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555”
这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。
方法一:
file/import data....../next/finish
>> whos
Name
data
textdata
Grand total is 54 elements using 460 bytes
>> data
data =
1
2
3
4
5
>> textdata
textdata =
'你好'
'欢迎来到'
'振动论坛'
'vib.hit.edu.cn'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1 =
'1'
'2'
'3'
'4'
'5'
a2 =
'11'
'22'
'33'
'44'
'55'
a3 =
'111'
'222'
'333'
'444'
'555'
a4 =
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。
————————————————————————————————
三、中文 数据 英文混乱如test.txt
你好
1 11 111 1111
欢迎来到
2 22 222 2222
振动论坛
3 33 333 3333
vib.hit.edu.cn
4 44 444 4444
5 55 555 5555
说明:这种内容格式的文件用上面的方法是不行的。
以下是由chinamaker编写的一种方法:
fidin=fopen('test.txt');
fidout=fopen('mkmatlab.txt','w');
while ~feof(fidin)
tline=fgetl(fidin);
if
double(tline(1))>=48&&double(tline(1))<=57
fprintf(fidout,'%snn',tline);
continue
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt');
>> MK
MK =
1
2
3
4
5
转自:http://liangshzh0816.blog.163.com/blog/static/3477676201122310405816/?suggestedreading&wumii
一、保存文件
1、保存整个工作区
File->Save Workspace as...一个.mat文件
2、保存工作区的变量
在左工作区右击变量名,create M-File
3、save命令
(1)save
将工作区中的所有变量保存在当前工作区中的文件里,文件名为matlab.mat.
(2)save('filename')
将工作区中的所有变量保存为一个文件,文件名由‘filename’指定,默认为当前路径
(3)save('filename','var1','var2',...)
保存指定的变量在filename指定的文件中
二、导入文件
1、load
(1)load: 如果matlab.mat存在,则导入matlab.mat中的所有变量,如果不存在则返回error。
(2)load filename: 将filename中的全部变量导入到工作区中
(3)load filename XYZ:将filename中的变量X,Y,Z导入到工作区中,如果是MAT文件,在指定变量时可用通配符“*”
2、whos -file matlab.mat
3、importdata
与load函数不同,将文件中的数据已结构体方式写入
(1)importdata('filename')
(2)A=importdata('filename')
4、open
Matlab使用open打开各种格式的文件,自动根据扩展名选择相应的编辑器。
open('filename'): 以结构体的方式打开在工作区中,与importdata('filename')类似;而load('filename')将文件中的变量导入工作区中,如果要访问其中的内容,需要以不同的格式进行。
5、从xls中读取数据
data1=xlsread('c:usersfile1.xls')
无论07版的xlsx还是03版的xls都用xlsread读。
转自:http://blog.sina.com.cn/s/blog_685184d70100scyc.html

加载中…