matlab文件的导入导出
matlab文件和数据的导入与导出
gjy_just@
x = 0:.1:1; y = [x; exp(x)]; Fid = fopen('exp.txt','w+'); fprintf(Fid,'%6.2f %12.8f\n',y); fclose(Fid); Fid=fopen('exp.txt', 'r+'); %B=fread(Fid, [2,11],'long'); B=fscanf(Fid,'%f',[2,11]); fclose(Fid);
gjy_just@
8
precision 用于控制所读数据的精度格式。 缺省格式为uchar,即无符号字符格式。 例如:Fid=fopen('std.dat', 'r'); A=fread(Fid, [10,10], 'long'); fclose(Fid); A以读数据方式打开数据文件std.dat,并按长 整型数据格式读取文件的前100个数据放入 向量A,然后关闭文件。
gjy_just@
5
2、 fclose关闭文件 文件在进行完读、写等操作后,应及时 关闭,以保证文件的安全可靠。关闭文件 命令格式为: Sta=fclose(Fid) 关闭Fid所表示的文件 Sta表示关闭文件操作的返回代码,若关 闭成功,返回0,否则返回–1。
gjy_just@
江苏科技大学数理学院文件和数据的导入与导出gjyjustyahoocomcn11文件的打开与关闭matlab提供了对数据文件建立打开读写以及关闭等一系列函数数据文件一般存放在磁盘等介质上用文件名标识系统对文件名没有特殊要求
文件和数据的导入与导出
MATLAB文件和数据的导入与导出
练习:1画出曲面图:)(22y x e x z --⨯=,其中x 在[-2,2]等切分21个点,y 在[-1,1]等切分21个点。
2、三维曲线:,126622-++++=y x y xy x z ,1010,1010<<-<<-y x文件和数据的导入与导出1、 文件的打开、保存和关闭(1) 打开文件不同类型文件后缀名不同,如filename.m, filename.mat(数据文件), filename.pdf(pdf 文件), filename.fig(图形文件)。
使用格式:open('filename'): %打开文件filename 。
打开当前路径上的文件,可以直接用open 函数打开,例如: open 学位论文评议书.pdf 或open('学位论文评议书.pdf') 如果文件不在当前路径上,打开它需要指定路径名,例如: open('D:\temp\data.mat')(2)关闭文件status=fclose(fid) :%关闭打开的文件fid ,成功则返回0,否则返回-1。
status=fclose('all')关闭所有的已经打开的文件,成功则返回0,否则返回-1。
2、本机数据文件(1)文件的存储在命令窗口输入>>save这个命令将工作区中的变量存储在matlab.mat中,也可以使用命令:>>save var1 var2…%将var1,var2…保存为名为matlab.mat中。
>>save filename var1 var2…%将var1,var2…保存为名为filename.mat中。
(2)文件的打开使用命令:>>load %可以调用第一个matlab.mat中的所有变量。
>>load filename %filename.mat被打开,其中的变量被载入工作区>>load filename var1 var2 % %filename.mat被打开,其中的变量var1 var2被载入工作区可以使用file 中的Import Data 可以查看.mat文件。
MATLAB的数据导入与导出
MATLAB的数据导⼊与导出1 数据导⼊:%% ⾼层次读取数据。
importdata 函数是⼀个⾼层次的函数filename = 'weeklydata.txt';delimiterIn =''; %delimiter: n. 定界符。
将 delimiterIn 解释为 ASCII ⽂件、⽂件名或剪贴板数据中的列分隔符。
headerlinesIn = 1; % 从 lineheaderlinesIn+1开始读取数字数据。
A=importdata(filename,delimiterIn,headerlinesIn);% 开始预览数据for k =[1:7]disp(A.colheaders{1,k}) %展⽰每⼀列的题头disp(A.data(:,k)) %每⼀列的所有⾏disp('')end结果:Matlab低级别的⽂件 I/O:%% Matlab低级别的⽂件 I/Ofilename = 'myfile.txt';% myfile.txt保存在⼯作⽬录中。
此⽂件存放三个⽉的降⾬资料: 2012年6⽉,7⽉和8⽉降⾬量。
% myfile.txt中的数据在五个地⽅包含重复的时间,⽉份和降⾬量测量。
标题数据存储⽉数M; 所以有M个集合测量值。
rows = 7cols = 5%使⽤ fopen 函数打开⽂件并获得⽂件标识符。
fid = fopen(filename);%读取⽂件头,找到 M (⽉份数)% 使⽤格式说明符描述⽂件中的数据,例如字符串的%s,整数%d或浮点数%f。
% 要跳过⽂件中的⽂字,需将其包含在格式说明中。
要跳过数据字段,在说明符中使⽤星号(*)M=fscanf(fid,'%*s %*s\n %*s %*s %*s %*s\n M=%d',1); %要读取头⽂件,并返回单个的M值%读取 each set of measurementsfor n= 1:M% 默认情况下,fscanf会根据格式描述读取数据,直到找不到数据的匹配,或到达⽂件的末尾。
matlab程序设计文件和数据的导入导出
第十章
图形处理
与数值计算和符号计算相比,图形的可视化技术是数 学计算人员所追求的更高级的一种技术,图形处理技术 则给人们提供了一种更直接的表达方式,可以使人们更 直接、更清楚的了解实物的结果和本质。本章主要介绍 MATLAB的图形处理功能,包括基本的绘图指令、图形的 简单控制和图形窗口的编辑等。
图形处理
5 使用坐标轴标签,图例和文本对图形进 行注释
6 输出打印
图形处理
(二) 绘制二维曲线图 如果将X轴和Y轴的数据分别保存在两个向量中,同 时向量的长度完全相等,那么可以直接调用函数进行二 维图形的绘制。 plot(y) y是实向量,以该向量原始的下标为横坐标,元素值为 纵坐标画出一条连续曲线 y是实矩阵,按列绘制每列元素值相对其下标的曲线,图 中曲线数等于y阵列数。
图形处理
函数
annotation
功能描述
创建线、箭头、文本箭头、双箭头、文本框、 矩形和椭圆
Xlabel,ylabel,zlabel
title
给相应的坐标轴增添标签
给图形增添标题
colorbar
legend
给图形增添颜色条
给图形增添图例
图形处理
1.图题标注 title(‘text’):命令将内容增加到当前图形的顶边部分; 2.坐标轴的标签:用于解释各坐标轴的单位信息。 xlabel(‘text’):命令将text增加到当前x轴的旁边; ylabel(‘text’):命令将text增加到当前y轴的旁边; zlabel(‘text’):命令将text增加到当前z轴的旁边; 3.文本标注 text(x,y,‘string’):在坐标(x,y)的位置上添加文本标注 string.
图形处理
(六) 对数比例坐标轴和双Y轴 当进行数理统计能操作时,习惯使用对数坐标系来绘 制图形。 loglog:对X轴和Y轴均采用对数坐标。 semilogx:对X轴采用对数坐标。 semilogy:对Y轴采用对数坐标。 在进行数值比较时,会遇到必须使用双纵坐标的情况, 函数plotyy绘制的图形左右两端都有显示Y坐标轴。
Matlab数据的导入与导出PPT课件
2020/11/2020/11/1
数据的导入与导出
【例2.1-1】利用数据导入向导读取文件examp02_01.txt至 examp02_11.txt中的数据 数据文件略去……
2020/11/1
二、调用高级函数读取数据
1. 调用importdata函数读取数据 调用格式: importdata() A = importdata() A = importdata() A = importdata() [A D] = importdata(…) [A D H] = importdata(…) […] = importdata(‘-pastespecial’, …)
低级函数
函数名 说 明
fopen
打开文件,获取打开文件的 信息
fclose 关掉一个或多个打开的文件
fgets fgetl fscanf textscan
读取文件中的下一行,包括 换行符 调用 fgets 函数,读取文件中 的下一行,不包括换行符 按指定格式从文本文件中读 取数据 按指定格式从文本文件或字 符串中读取数据
2020/11/1
4. 调用textread函数读取数据 调用格式: [A,B,C,…] = textread('','format') [A,B,C,…] = textread('','format',N) […] = textread(…,'param','value',…)
数据的导入与导出
2020/11/1
高级函数 函数名 load importdata dlmread csvread textread strread
说明 从文本文件导入数据到 MATLAB 工 作空间 从文本文件或特殊格式二进制文件 (如图片,avi 视频等)读取数据 从文本文件中读取数据
Matlab文件和数据的导入与导出
MATLAB中导入数据通常由函数load实现,该函数的用法如下:
2014年8月31日7时46分
回到章节目录
5
MATLAB中,另一个导入数据的常用函数为importdata,该 函数的用法如下: ● importdata(‘filename’),将filename中的数据导入到工作区中 ● A = importdata(‘filename’),将filename中的数据导入到工作区 中,并保存为变量A; ● importdata(‘filename’,‘delimiter’),将filename中的数据导入到 工作区中,以delimiter指定的符号作为分隔符; 例 从文件中导入数据。 >> imported_data = importdata('matlab.mat') imported_data = ans: [1.1813 1.0928 1.6534] A: [2x3 double] I_q: [415x552x3 uint8] num_of_cluster: 3 与load函数不同,importdata将文件中的数据以结构体的方 式导入到工作区中。 回到章节目录
2014年8月31日7时46分 回到章节目录 3
例如: a = [1 2 3; 4 5 6; 7 8 9]; b=[2 3 4]'; save 'c:\tst.txt ' a -ascii
则将a保存在c盘中的tst.txt文件中,文件内容:
1.0000000e+000 2.0000000e+000 3.0000000e+000 4.0000000e+000 5.0000000e+000 6.0000000e+000 7.0000000e+000 8.0000000e+000 9.0000000e+000
MATLAB里面的数据导入与导出
MATLAB⾥⾯的数据导⼊与导出
-、导⼊数据
上⾯这张图,我们可以看到导⼊数据这⼀项,点击导⼊数据
上⾯是我从我电脑⾥⾯随便选的的⼀个excel⽂件,然后点击选择就成。
后⾯我们就进⼊了新的页⾯
这⾥我们需要注意的是选择输出类型,由于我们后⾯需要对矩阵内的数据进⾏运算,所以我们选择了数值矩阵,然后点击导⼊所选内容
在这⾥我们在⼯作区会发现⼀个example2,就是我们导⼊的数据。
后⾯我们就可以进⾏数据操作了。
⼆、写⼊数据
这是将数据写⼊txt⽂件内的代码。
这是将数据写⼊excel⽂件中的代码,注意,这个a.xls⽂件是可以先不新建的,它会⾃⼰新建,除此以外,我们必须明⽩的是,我们写代码的时候example和example2⽂件的数据类型不⼀样,如果不加注意的话,我们后⾯可能导⼊不进去数据,如我们将example的⽂件写⼊a.xlsx⽂件中就会出问题。
然后我们注意⼀下xlswrite和writetable两个的区别就好了,⼀个是写⼊excel⽂件,⼀个是写⼊⽂本中。
相关的语法直接help就成。
这个是导⼊数据之后的excel⽂件,在左边的当前⽂件夹可见。
matlab文件的导入导出
在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。
MATLAB使用多种格式打开和保存数据。
本章将要介绍MATLAB中文件的读写和数据的导入导出。
13.1 数据基本操作本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。
13.1.1 文件的存储MATLAB支持工作区的保存。
用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。
保存工作区可以通过菜单进行,也可以通过命令窗口进行。
1. 保存整个工作区选择File菜单中的Save Wo rkspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
2. 保存工作区中的变量在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。
3. 利用save命令保存该命令可以保存工作区,或工作区中任何指定文件。
该命令的调用格式如下:● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。
● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。
如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
● save('filename', 'var1', 'var2', ...):保存指定的变量在filename 指定的文件中。
● save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。
● save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。
Matlab中的文件操作与数据导入导出方法
Matlab中的文件操作与数据导入导出方法概述Matlab是一种功能强大的数值计算与数据分析工具,广泛应用于科研、工程和金融等领域。
在Matlab中,文件操作和数据导入导出是常见且重要的操作。
本文将介绍Matlab中的文件操作方法以及数据的导入导出方法,以帮助读者更好地处理和管理数据。
一、文件操作1. 文件的新建和打开:在Matlab中,可以使用`fopen`函数来新建或打开一个文件,并返回文件标识符,用于后续操作。
例如,`fid = fopen('data.txt','w')`可以新建一个用于写入的文件。
2. 文件的写入和读取:可以使用`fprintf`函数向文件中写入数据,使用`fscanf`函数从文件中读取数据。
例如,`fprintf(fid,'%s','Hello, world!')`可以将字符串"Hello, world!"写入到文件中,而`str = fscanf(fid,'%s')`则可以读取文件中的字符串。
3. 文件的关闭和删除:在文件操作完成后,应使用`fclose`函数关闭文件,以释放系统资源。
同时,可以使用`delete`函数删除不再需要的文件。
二、数据导入导出1. 文本文件的导入和导出:Matlab支持导入导出各种格式的文本文件,如CSV、TXT等。
可以使用`readtable`函数导入数据表格,使用`writetable`函数将数据表格导出到文件中。
例如,`data = readtable('data.csv')`将CSV文件中的数据导入到名为`data`的数据表格中,而`writetable(data,'output.txt')`则将数据表格导出到TXT文件中。
2. Excel文件的导入和导出:Matlab还支持导入导出Excel文件,方便处理大量的数据。
matlab数据导入和导出
matlab数据导入和导出1. Xlsread读入数据[a3, h_lukou] = xlsread('ex1.xls','sheet3'); %指定工作表中数据,表头和字符数据存入h_lukou [a, h_lukou] = xlsread('2011B-data.xls', 'lukou'); %指定工作表中数据,表头和字符数据存入h_lukou [a, h_lukou] = xlsread('2011B-data.xls', 'A2:C3'); %读取指定区域的数据[g = xlsread('2011B-data.xls', 'A2:C300') %读取指定区域的数据2.文本数据1)a=textread('b-lukou.txt'); %这种读取的信息自动分隔,可带格式读整个文件,例见B2011_fig.m2)textscanfr = fopen('b-lukou.txt ', 'r'); txt数据空格分隔g1 = textscan(fr, '%d %d %d %f \n'); %读一行中指定格式的内容,指针移到未读处g1 = textscan(fr, '%d %d %d %f \n',N); %同一格式重复读N 次,(包括P87例2.10好像不执行)fr = fopen('ex2.txt ', 'r'); txt数据’,’分隔g1 = textscan(fr, '%d %d %d %f \n','delimiter',',');textscan更适合读入大文件;textscan可以从文件的任何位置开始读入,而textread 只能从文件开头开始读入;textscan也可以从上一次textscan结束的位置开始读入,而textread不能;textscan只返回一个数组,而textread要返回多个数组;textscan提供更多转换读入数据的选择;textscan提供给用户更多的配置参数。
matlab中的数据导入和导出
matlab中的数据导入和导出Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。
最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。
Matlab支持的主要数据文件类型和对应函数如下:导入文本文件文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。
数据文件可能附带标题行和行列头标签。
数值数据对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1 2 3 4 56 7 8 9 10命令A = load('my_data.txt')装载该文本文件数据。
如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.65.4;9.2;8.1;7.2命令A = dlmread('my_data.txt', ';')读入该数据。
包含行列标签的数值数据例如:Grade1 Grade2 Grade378.8 55.9 45.999.5 66.8 78.089.5 77.0 56.7fid = fopen('grades.dat', 'r');grades = textscan(fid, '%f %f %f', 3, 'headerlines', 1);fclose(fid);包含字符和数值的混合数据使用textread函数读入。
导出文本文件save函数A = [ 1 2 3 4 ; 5 6 7 8 ];save my_data.out A –ASCIIdlmwrite函数dlmwrite('my_data.out',A, ';')MS-Excel电子表格文件xlsinfo获得文件信息使用命令[type, sheets] = xlsfinfo(filename)返回文件类型type和工作表信息。
Matlab数据的导入与导出
二、调用高级函数读取数据
数据的导入与导出
1. 调用importdata函数读取数据
调用格式:
importdata(filename) A = importdata(filename) A = importdata(filename,delimiter) A = importdata(filename,delimiter,headerline) [A D] = importdata(…) [A D H] = importdata(…) […] = importdata(‘-pastespecial’, …)
2020/2/7
© 谢中华, 天津科技大学数学系.
数据的导入与导出
【例2.1-4】调用dlmread函数读取文件examp02_01.txt至 examp02_11.txt中的数据
>> x = dlmread('examp02_03.txt') >> x = dlmread('examp02_03.txt', ',', 2, 3) >> x = dlmread('examp02_03.txt', ',', [1, 2, 2, 5]) >> x = dlmread('examp02_05.txt') >> x = dlmread('examp02_06.txt') >> x = dlmread('examp02_09.txt') ……
2020/2/7
© 谢中华, 天津科技大学数学系.
2. 调用load函数读取数据 调用格式: S = load(filename) S = load(filename, variables) S = load(filename, '-mat', variables) S = load(filename, '-ascii') load(...) load ...
matlab中不同文件的数据导入和输出的实例
matlab中不同文件的数据导入和输出的实例如下:在一个matlab的学习群里,有人提出了这么一个问题:在matlab里如何读取多信文件的数据,例如,有许多数据,存放在不同的txt文件里。
我的办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以把这些文件分别命名为:filename1.txt,filename2.txt,...,fielname100.txt,在读取的时候则可以使用循环:for i = 1:100fileName = ['filename', num2str(i), '.txt'];x = load(filiName);end但另一位朋友给出了另一个解决的办法,无需对数据文件的文件名进行修改,就是文件名无须有规律,他的办法是:A = dir(fullfile('d:\datafile','*.txt'));这个语句是把存放数据文件的目录d:\datafile下的所有txt文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有文件的数据了。
所谓人外有人,山外有山,我真是受教了,特写此文以记录此法。
附:help fullfilehelp fullfileFULLFILE Build full filename from parts.FULLFILE(D1,D2, ... ,FILE) builds a full file name from thedirectories D1,D2, etc and filename FILE specified. This isconceptually equivalent toF = [D1 filesep D2 filesep ... filesep FILE]except that care is taken to handle the cases where the directory parts D1, D2, etc. may begin or end in a filesep. Specify FILE = '' to build a pathname from parts.ExamplesTo build platform dependent paths to files:fullfile(matlabroot,'toolbox','matlab','general','Contents.m')To build platform dependent paths to a directory:addpath(fullfile(matlabroot,'toolbox','matlab',''))See also filesep, pathsep, fileparts.Reference page in Help browserdoc fullfile。
MATLAB的数据导入与导出
不在当前目录,系统将会在其他路径进行 搜索。 • FID = FOPEN(FILENAME,PERMISSION) FID 称为文件标识符,如果错误,返回-1
MATLAB的文件操作
• • • • • •
• •
'r' 'w' 'a' 'r+' 'w+' read write (create if necessary) append (create if necessary) read and write (do not create) truncate or create for read and
available and need not be • opened. They are FID=1 (standard output) and FID=2 (standard error). • FID, MESSAGE] = FOPEN(FILENAME,PERMISSION) • returns a system dependent error message if the open is not successful.
write
'a+' read and append (create if necessary) 'W' write without automatic flushing 'A' append without automatic flushing
MATLAB的文件操作
• Two file identifiers are automatically
Matlab数据的导入与导出(共39张)
调用格式:
[fid, message] = fopen(filename, permission) [filename, permission] = fopen(fid)
permission 'rt' 'wt' 'at' 'r+t' 'w+t' 'a+t' 'At'
'Wt'
说明 以只读方式打开文件。这是默认情况 以写入方式打开文件,若文件不存在,则创建新文件并打开。原文件内容会被清除 以写入方式打开文件或创建新文件。在原文件内容后续写新内容 以同时支持读、写方式打开文件 以同时支持读、写方式打开文件或创建新文件。原文件内容会被清除 以同时支持读、写方式打开文件或创建新文件。在原文件内容后续写新内容 以续写方式打开文件或创建新文件。写入过程中不自动刷新文件内容,适合于对磁带 介质文件的操作 以写入方式打开文件或创建新文件,原文件内容会被清除。写入过程中不自动刷新文 件内容,适合于对磁带介质文件的操作
>> x = dlmread('examp02_09.txt')
……
202222//11/1/188
第13页,共39页。
© 谢中华, 天津科技大学数学系.
4. 调用(diàoyòng)textread函数读取数据
调用格式: [A,B,C,…] = textread('filename','format') [A,B,C,…] = textread('filename','format',N) […] = textread(…,'param','value',…)
Matlab学习系列-011.数据的读写、导入及导出
Matlab学习系列-011.数据的读写、导⼊及导出011. 数据的读写、导⼊及导出在编写⼀个程序时,经常需要从外部导⼊数据,或者将程序运⾏的结果保存为⽂件。
⼀、*.txt或*.dat数据的导⼊与导出1.load函数——数值数据(格式⼀致)导⼊注:load函数可以导⼊.mat⽂件,也可以导⼊变量Load(‘1.mat’,’y’)例1.‘examp01.txt’⽂件如下:1.6218e-005 6.0198e-005 4.5054e-005 8.2582e-005 1.0665e-005 8.6869e-0057.9428e-005 2.6297e-005 8.3821e-006 5.3834e-005 9.6190e-005 8.4436e-0063.1122e-005 6.5408e-005 2.2898e-005 9.9613e-0054.6342e-007 3.9978e-0055.2853e-0056.8921e-005 9.1334e-0057.8176e-006 7.7491e-005 2.5987e-0051.6565e-005 7.4815e-005 1.5238e-005 4.4268e-005 8.1730e-005 8.0007e-005代码:x1 = load('examp01.txt') ;% ⽤load函数载⼊⽂件examp01.txt中的数据x1 = load('examp01.txt', '-ascii');% ⽤-ascii选项强制以⽂本⽂件⽅式读取数据load('examp01.txt'); %载⼊数据给变量examp01运⾏结果:x1 = 1.0e-004 *0.1622 0.6020 0.4505 0.8258 0.1066 0.86870.7943 0.2630 0.0838 0.5383 0.9619 0.08440.3112 0.6541 0.2290 0.9961 0.0046 0.39980.5285 0.6892 0.9133 0.0782 0.7749 0.25990.1657 0.7481 0.1524 0.4427 0.8173 0.8001例2.‘examp02.txt’⽂件如下:9.5550 2.7027, 8.6014; 5.6154* 3.45320.9223 0.9284, 1.4644; 3.6703* 2.21345.5557 7.2288, 4.3811;6.4703* 4.78564.7271 9.9686, 6.1993; 9.6416* 0.6866代码:x1 = load('examp02.txt')% ⽤load函数载⼊⽂件examp02.txt中的数据x1 = load('examp02.txt', '-ascii');% ⽤-ascii选项强制以⽂本⽂件⽅式读取数据运⾏结果:x =9.5550 2.7027 8.6014 5.6154 3.45320.9223 0.9284 1.4644 3.6703 2.21345.5557 7.2288 4.38116.4703 4.78564.7271 9.9686 6.1993 9.6416 0.68662.dlmread函数——有统⼀分隔符的数值数据导⼊语法:M = dlmread(‘⽂件名’, ‘分隔符’,‘读取范围’)例3.(带标题⾏)‘examp03.txt’⽂件如下:这是2⾏头⽂件,你可以选择跳过,读取后⾯的数据。
matlab中的数据导入和导出
matlab中的数据导入和导出Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。
最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。
Matlab支持的主要数据文件类型和对应函数如下:导入文本文件文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。
数据文件可能附带标题行和行列头标签。
数值数据对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1 2 3 4 56 7 8 9 10命令A = load('my_data.txt')装载该文本文件数据。
如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.65.4;9.2;8.1;7.2命令A = dlmread('my_data.txt', ';')读入该数据。
包含行列标签的数值数据例如:Grade1 Grade2 Grade378.8 55.9 45.999.5 66.8 78.089.5 77.0 56.7fid = fopen('grades.dat', 'r');grades = textscan(fid, '%f %f %f', 3, 'headerlines', 1);fclose(fid);包含字符和数值的混合数据使用textread函数读入。
导出文本文件save函数A = [ 1 2 3 4 ; 5 6 7 8 ];save my_data.out A –ASCIIdlmwrite函数dlmwrite('my_data.out',A, ';')MS-Excel电子表格文件xlsinfo获得文件信息使用命令[type, sheets] = xlsfinfo(filename)返回文件类型type和工作表信息。
matlab中的数据导入和导出
Matlab文件和数据的导入与导出Matlab文件和数据的导入与导出在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。
MATLAB使用多种格式打开和保存数据。
本章将要介绍MATLAB中文件的读写和数据的导入导出。
13.1 数据基本操作本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。
13.1.1 文件的存储MATLAB支持工作区的保存。
用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。
保存工作区可以通过菜单进行,也可以通过命令窗口进行。
1. 保存整个工作区选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
2. 保存工作区中的变量在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。
3. 利用save命令保存该命令可以保存工作区,或工作区中任何指定文件。
该命令的调用格式如下:● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。
● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。
如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
● save('filename', 'var1', 'var2', ...):保存指定的变量在filename 指定的文件中。
● save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。
● save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
gprmax.m的使用例子:
fileout = 'bre1.out';
[Header,Fields]=gprmax(fileout);
N=1:Header.NSteps; %移动次数
Position=Header.dx*Header.tx+(N-1)*(Header.dx*Header.TxStepX); %天线每次所在位置
#domain: 1.0 1.5
表示1.0*1.5的大小范围
#dx_dy:
表示x和y轴上的偏移量(如△x、△y)
#dx_dy: f1 f2
表示x轴偏移f1和y轴方向上偏移f2
#domain: 1.0 1.5
#dx_dy: 0.1 0.1
则模型的单元数为10*15
#domain: 1.0 1.5
#dx_dy: 0.01 0.01
GprMaxV2.0下载地址:/Download.html
说明:翻译得不好,还望大家见谅,因为我也是边看边译的。
3.1 GprMax2D命令的一般注意事项
为了描述GprMax2D/3D命令及其参数,我们作以下约定:
f表示浮点数(如1.5或15e-1、1.5e1)
Header.nrx:
Header.nrx_box:
Header.tx=0.0875/Header.dx=35;
Header.ty=0.4525/Header.dy=181;
Header.source=’MyLineSource’;
Header.delay=0;(等于#tx:命令的第四个参数)
Header.removed=12e-9;(等于#tx:命令的第五个参数)
则模型的单元数为100*150
最大允许时间步△t与△x、△y的约束关系如下:
(3.1)
C为光速,GprMax2D中计算△t使用3.1式等号。
#time step stability factor:
通过该命令,你可以修改GprMax2D所计算的△t的值,但必须满足3.1式的要求。
#time_window:
例子:如输入文件*.in中定义:
#domain: 2.5 0.65
#dx_dy: 0.0025 0.0025
#time_window: 12e-9
……
#analysis: 115 bre1.out b
#tx: 0.0875 0.4525 MyLineSource 0.0 12e-9
#rx: 0.1125 0.4525
i表示整数
c表示字符
str表示字符串
file表示输入文件名
所有空间距离的基本单位为米
所有时间的基本单位为秒
所有频率参数的基本单位是Hz
3.2 GprMax2D 2.0版本共有32条命令:
#title:
#domain:
#dx_dy:
#time_step_stability_factor:
#time_window:
ylabel('y(m)');
2.2 gprmax.m的使用方法
gprmax函数用于读取GprMax2D与GprMax3D软件仿真探地雷达模型生成的二进制波形数据。
gprmax函数的原型:
[Header, Fields] = gprmax( 'filename' )
filename是.out文件名;
header.nx=2.5/0.0025=1000; header.ny=0.65/0.0025=260;
mesh: 存储模型数据,M x N的数组,其中M为Y轴方向的Yee单元数目,N为X轴方向的Yee单元数目;M=header.nx,N=header.ny;
gprmax2g.m的使用例子:
filegeo = 'bre1.geo';
GprMaxV2.0中GprMax2D输入文件的命令(1/2)
原创
修改人
修改时间
版本
微风无尘
微风无尘
2012.3.9
V1.1
实验环境:
操作系统:Windows 7
软件版本:MATLAB 7.1 & GprMaxV2.0
参考文献:
GprMaxV2.0软件manual文件夹下的UserGuideV2.pdf。
#pml_layers:
#box:
#cylinder:
#x_segment:
#y_segment:
#triangle:
#analysis:
#end_analysis:
#tx:
#rx:
#rx_box:
#snapshot:
#tx_steps:
#rx_steps:
#line_source:
#excitation_file:
#messages:
#number_of_media:
#nips_number:
#media_file:
#geometry_file:
#medium:
#abc_type:
#abc_order:
#abc_stability_factors:
#abc_optimization_angles:
#abc_mixing_parameters:
至少一个#tx:与#rx:,或者#rx_box:命令
• 为了使#tx: 命令正确运行,同时需要一行新的#line_source:命令
3.3.1一般命令
#title:
模型的题目
#title: str
Str即是模型的题目,必须是单行的。
#domain:
模型的范围(单位:米)
#domain: f1 f2
f1与f2分别代表x和y轴上的量度大小
1)Header:该变量包括以下成员:
Header.title: 模型的名称;
Header.iterations: 迭代次数;
Header.dx: 在X轴每次偏移大小;
Header.dy: 在Y轴每次偏移大小;
Header.dt: 最大允许时间步长;
Header.NSteps: 仿真次数;等于*.in文件中#analysis:命令的第一个参数;
ABC相关命令: 允许定制和优化吸收边界条件
介质和对象的构造命令: 用不同的参数来在模型中引入不同的介质和构造简单的几何形状
激励和输出命令:用来放置源代码和模型的输出点
运行GprMax2D最低限度的命令如下:
•#domain:
•#dx_dy:
•#time_window:
•至少一个#analysis:及与其对应的结束命令#end_analysis:
header: 存储模型的几何参数;
header.title: 模型的名称;
header.dx: 模型在X轴每次偏移大小(单位:m);
header.dy: 模型在Y轴每次偏移大小(单位:m);
header.dt: 最大允许时间步长(单位:秒);
header.nx: 模型在X轴的偏移次数;
header.ny: 模型在Y轴的偏移次数;
#tx_steps: 0.02 0.0
#rx_steps: 0.02 0.0
#end_analysis:
……
那么,Header.iterations=ceil(Header.removed/Header.dt);
Header.dx=0.0025;Header.dy=0.0025;
Header.dt= 1/(c*sqrt(1/Header.dx^2+1/Header.dy^2));
例子:如输入文件*.in中定义:
#domain: 2.5 0.65
#dx_dy: 0.0025 0.0025
那么:header.dx=0.0025; header.dy=0.0025;
header.dt = 1/(c*sqrt(1/header.dx^2+1/header.dy^2)); (其中c=299792458,为光速,公式参考[1]);
Header.NSteps=115;
Header.TxStepX=0.02/Header.dx=8; Header.TxStepY=0.0/Header.dy=0;
Header.RxStepX=0.02/Header.dx=8; Header.RxStepY=0.0/Header.dy=0;
Header.ntx:
[meshdata,header,media]=gprmax2g((meshdata);
imagesc((1:NN)*header.dx,(1:MM)*header.dy,meshdata)
axis('equal');
xlabel('x(m)');
用于指定所需的总的模拟时间。语法:
#time_window: f1
或者
#time_window: i1
总的迭代次数和模拟时间窗口: (3.2)
#number_of_media:
但你需要使用大于10个介质时必须使用该命令,因为GprMax2D只初始化了10个介质的使用空间。
#number_of_media: i1
2.1 gprmax2g.m的使用方法
gprmax2g函数用于读取GprMax2D软件仿真探地雷达模型生成的二进制几何数据。
gprmax2g函数的原型:
[mesh,header,media] = gprmax2g( 'filename' )
filename是.geo文件名;
media: 存储介质类型,media.type;
使用该命令,你可以控制软件运行时在屏幕上的输出信息。
#messages:c1