讲建模数据的导入与导出.ppt_第1页
讲建模数据的导入与导出.ppt_第2页
讲建模数据的导入与导出.ppt_第3页
讲建模数据的导入与导出.ppt_第4页
讲建模数据的导入与导出.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学好计算机的唯一途径是 你的编程能力与你在计算机上练习编程所投入的时间成,上机练习,正比,建模数据的导入与导出,普通表格数据的读写(使用dlmread) 使用textread读取格式化文本数据 使用textscan读取格式化文本数据 图像数据的读写 数据导出 Lingo 读取外部数据 图形的复制与保存 文献检索方法:数据库检索、网络搜索,文本文件(逗号分隔) :textread, csvread, csvwrite,matlab数据文件的读写,数值文件(一般分隔):dlmread, dlmwrite,二进制文件:fopen, fread, fwrite, fclose,格式化的文本输入/输出:fscanf, fprintf,菜单命令:File Import Data,处理函数,一、普通表格数据的读写,如果数据不大,可以直接复制粘贴方式复制到MATLAB中的指定变量。 当数据较多时,先将数据复制粘贴到txt文件或m文件并保存为纯文本文件,然后在程序中通过函数dlmread或textread读取给指定变量。,dlmread:读取有分隔符的ASCII文件到矩阵,语法 M = dlmread(filename) M = dlmread(filename, delimiter) M = dlmread(filename, delimiter, R, C) M = dlmread(filename, delimiter, range) 描述 M = dlmread(filename) 从由filename指定的具有分割标志的ASCII文件中读取数值数据,使用一个分隔符作为格式化的文件的暗示信息。默认分隔符使用逗号(,)。 M = dlmread(filename, delimiter) 这里指定了分隔符。使用t代表制表符tab分隔。 注意:当从格式文件推断分隔符时,连续的空格符作为一个分隔符对待。但是不同的是, 如果通过分隔符输入参数指定了分隔符,那么重复的分隔字符将分别作为单独的分隔符对待。 M = dlmread(filename, delimiter, R, C) R和C指定了数据在文件中的左上角位置。R和C的值从0开始。R = 0, C = 0指定了了文件中的第一个值,位于文件的左上角。 M = dlmread(filename, delimiter, range) 读取由range定义的区域块的数值,range = R1 C1 R2 C2 。也可以使用电子表格符号来指定,range = A1B7.。,二、使用textread读取格式化文本数据,A,B,C,. = textread(filename,format) 按指定格式format,,从文件filename 中读取数据到变量A,B,C, 直到文件末尾。 A,B,C,. = textread(filename,format,N) 按格式format,读取N次数据给变量A,B,C, 例:设文件mydata.dat 内容为 Sally Level1 12.34 45 Yes Tom Level2 54.47 68 No 则names, types, x, y, answer = textread(mydata.dat, %s %s %f %d %s, 1) 返回: names = Sally types = Level1 x = 12.34000000000000 y = 45 answer = Yes,而names, types, x, y, answer = textread(mydata.dat, %s %s %f %d %s) 返回: names = Sally Tom types = Level1 Level2 x = 12.3400 54.4700 y = 45 68 answer = Yes No 其中names、 types 、 answer 均为cell数据类型。如 names1 对应Sally answer2对应No。 x, y 均为double型数组,2009年全国数模赛B题数据的导入,题目: 第一步:现将数据复制到记事本中: 第二步:编写程序,读取数据 第三部:数据处理与分析,三、使用textscan读取格式化文本数据,fid=fopen(filename); %打开文件 C = textscan(fid, format, N) ;%根据格式读N行,Ci为filename中的第i列 fclose(fid);%关闭文件 例:对前面给定的mydata.dat文件 fid=fid=fopen(mydata.dat); C=textscan(fid,%s %s %f %d %s) fclose(fid); C = 2x1 cell 2x1 cell 2x1 double 2x1 int32 2x1 cell 显然C为cell数组。C1保存文件第1列数据,为2x1 cell数据C11为Sally, C12为Tom, C3为文件中的第3列数据,为2x1 double数据,所以C3(1)为12.3400, C3(2)为54.4700 类似的方法可以取出其他各列的各个数据,2000年全国数模竞赛A题:DNA序列分类,题目: 数据导入: fid=fopen(DNAdata.txt); D = textscan(fid,%s); fclose(fid); 特征提取: 统计每条DNA中a、c、t、g 四个字符出现的频率。 D1i对应第i条DNA,N=numel(D1)表示DNA总数 使用sum(D1i =g)可以计算出第i条DNA中有多少个字符g,fid=fopen(DNAdata.txt); D = textscan(fid,%s); fclose(fid); N=numel(C1); P=zeros(N,4); for i=1:N P(i,1)=mean(D1i=a); P(i,2)=mean(D1i=c); P(i,3)=mean(D1i=t); P(i,4)=mean(D1i=g); end,四、图像数据的读写,读图像:I=imread(filename); 显示图像:imshow(I), imshow(I,) , image(X) 写图像:imwrite(A,filename,fmt) 批量读取图像文件 path=uigetdir(cd);%获取文件夹路径 if path=0; return; end%没有打开文件夹,退出 files=dir(path *.bmp) ;dir(path *.jpg);%获取文件夹下指定类型文件,这里假设为bmp和jpg格式文件 Num=length(files);%文件总数 for ii=1:Num pic=imread(path files(ii).name);%读取第i副图像 。 end 例:2001年A题 :血管的三维重建;,五、数据导出,save filename varlist 文件格式为mat,只能用load filename 导入 dlmwrite(filename,m):writes matrix m into filename using the “,” as the delimiter. 可用dlmread(filename) 或csvread(filename) 读取 csvwrite(filename,m) writes matrix m into filename as comma separated values. 结果与dlmwrite相同,六、Lingo 读取外部数据,Cut (or Copy) Paste 方法 FILE 输入数据、TEXT输出数据(文本文件) OLE函数与电子表格软件(如EXCEL)连接 ODBC函数与数据库连接 LINGO命令脚本文件,FILE和TEXT:文本文件输入输出,MODEL: SETS: MYSET / FILE(myfile.txt) / : FILE(myfile.txt); ENDSETS MIN = SUM( MYSET( I): SHIP( I) * COST( I); FOR( MYSET( I): CON1 SHIP( I) NEED( I); CON2 SHIP( I) SUPPLY( I); DATA: COST = FILE(myfile.txt); NEED = FILE(myfile.txt); SUPPLY = FILE(myfile.txt); TEXT(result.txt)=SHIP, DUAL(SHIP), DUAL(CON1); ENDDATA END,myfile.txt文件 的内容、格式: Seattle,Detroit,Chicago,Denver COST,NEED,SUPPLY,SHIP 12,28,15,20 1600,1800,1200,1000 1700,1900,1300,1100,演示,OLE :与EXCEL连接,例:2005B题 “ DVD在线租赁”问题2:会员每次租赁3张DVD,现在给出网站手上的100种DVD的现有张数和当前需要处理的1000位会员的在线订单,如何对这些DVD进行分配,才能使会员获得最大的满意度? 现有DVD张数和当前需处理的会员的在线订单(表格示例),注:D001D100表示100种DVD, C0001C1000表示1000个会员, 会员的在线订单用数字1,2,表示,数字越小表示会员的偏爱程度越高,数字0表示对应的DVD当前不在会员的在线订单中,建立0-1规划模型:,其中ci,j是偏爱指数,在线订单数c不等于0,则用1/c代替,否则改成0。,sets: DVDset/ole(B2005.xls,DVDname)/:DVDnum; MemberSet/ole(B2005.xls,member)/; links(MemberSet,DVDset):order,c,x; endsets data: DVDnum=ole(B2005.xls); order=ole(B2005.xls); enddata !for(links(i,j)|like(i,j)#eq#0:c(i,j)=0); !for(links(i,j)|like(i,j)#gt#0:c(i,j)*order(i,j)=1); for(links(i,j):m(i,j)=if(order(i,j)#eq#0,0,1/order(i,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论