Matlab常见问题汇总和编程实例精.doc_第1页
Matlab常见问题汇总和编程实例精.doc_第2页
Matlab常见问题汇总和编程实例精.doc_第3页
Matlab常见问题汇总和编程实例精.doc_第4页
Matlab常见问题汇总和编程实例精.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

Matlab常见问题汇总(精)371.良好的编程习惯,程序文件开头一般添加复位的命令clear%清除内存变量clc%清除屏幕close all%关闭所有图像窗口2.读取文件的数据actinfo0=importdata(Lincese1actinfo.dat);% 读取Lincese1文件夹下actinfo.dat文件的数据3. 获得当前电脑主机名a,hostname0=dos(hostname);4.判断两个字符串是否相同,字符匹配strcmp(3455,3455) %判断两个字符串是否完全匹配strncmp(3455,3455,3)%判断两个字符串的前n个字符是否匹配5. 读取图片三维数据,显示图片p1=imread(pathicon);%获得和读取图片三维数据image(p1)%显示图片6.字符类型转换小结dircell=struct2cell();%结构型转变为胞元类型idchushi=char();%转变为字符格式indexstr=num2str(index);%数值型转变为字符串bindex=str2num(cell2mat(zbindex); %字符串转变为数值型suoyoudata3=cell2mat(dqjcidsuoyoudata(:,9:end); %胞元转变为dobule数值型str2double(zbbzlowi)%字符串转变为数值型7.获得文件夹下的文件名dir(picture1*)% 获得picture1文件夹下的所有文件名dir(picture1*.jpg) % 获得picture1文件夹下的JPG格式的所有文件名8.设置图形窗口名称、是否显示工具栏菜单栏,是否可以缩放set(f,toolbar,none,menubar,none,color,0.7 1 0.6,resize,off,name,Activation);9.弹出窗口,警告信息msgbox(软件已经在其他电脑上安装并激活,无法在本电脑上使用,错误信息,error);相似的命令还有:dialog, errordlg, helpdlg, inputdlg, listdlg, questdlg, warndlg10.修改GUI界面或者图形窗口左上角的matlab系统默认图标javaFrame=get(f,JavaFrame);javaFrame.setFigureIcon(javax.swing.ImageIcon(pathicon);11.设置GUI界面或者图形窗口的菜单项和子菜单项目%设置菜单项menufile=uimenu(label,文件);meunhelp=uimenu(label,帮助);%设置菜单子项menustart_item1=uimenu(menufile,label, 新建,callback,clear,clc,close, function);menustart_item2=uimenu(menufile,label, 打开,callback,clear,clc,close,function);12. 设置GUI界面或者图形窗口的背景图片icon=axes(position,0 0 1 1,units,normalized);uistack(icon,down);picture=imread(pathbackground);image(picture);colormap grayset(icon,handlevisibility,off,visible,off);13. 设置GUI界面或者图形窗口的各类控件b_exit=uicontrol(gcf,style,pushbutton,string,退出,units,normalized,position,0.75 0.2 0.18 0.08,fontsize,12,backgroundcolor,w,callback,clear,clc,close);14读取txt格式文件数据textread(idstartpath)textread(idstartpath,%s)%以字符型格式读取15.字母a-z,A-Z的简便表示方法char(65:90,97:122) % a-z,A-Z16.删除文件夹下的某个文件path1=Lincese1edocs,.dat;%文件路径delete(path1);% 删除文件17.文件的打开,写入,关闭file=fopen(path1,w);fprintf(file,%c,ss); fclose(file);18.设置和获得GUI控件的属性set(jielunkj,string,OK);%设置控件句柄为jielunkj的名称为OKget(zhishideng,backgroundcolor) %获得控件的背景颜色get(brun2,string); %获得控件的名称字符set(zhishideng,backgroundcolor,1 1 0); %设置控件的背景颜色19.时间类型,获得当前时间now%获得当前时间cidcjsjdata=datestr(now,31);%当前时间的char字符型shijiandian=datenum(shijiandian);%转变成时间格式,以小时为单位类似的命令还有:clock, date20.判断是否的命令isempty(index) %判断该变量是否为空exist(yichangxxjl,var) %判断该变量yichangxxjl是否存在ishandle(hwarn) %判断该变量hwarn是否是句柄类似的命令还有:ismember, issorted21.延时,或者暂停2秒钟pause(2);pause22.保存变量到文件中%保存变量idchushi到以idstartpath为路径的文件中dlmwrite(idstartpath,idchushi,%s)23.简单的GUI界面fyc=figure;set(fyc,toolbar,none,menubar,none,position,370 130 620 540);set(fyc,numbertitle,off,name,item3yc);24.对变量进行排序,获得将序排列的向量和原始位置索引ppdu,ppindex=sort(rateij,descend);25.两个向量取交集intersect(childhindex1,childhindex2);26.计时器,获取程序运行时间tic%计算程序运行的时间,两个命令成对使用toc27.图像分区域显示axe1=axes(units,normalized,position,0 0 1 1,parent,panel2);subplot(231)subplot(232)subplot(233)subplot(234)subplot(235)subplot(236)28.matlab运用JDBC方式连接SQL数据库,并读取数据%在Matlab用JDBC驱动连接SQL Server 2008(其他仅连接符url和driver不同)%在运行此段代码前先确保配置好了JDBC驱动,方法如下:%1.Microsoft官网下载sqljdbc3.0驱动Microsoft SQL Server JDBC Driver 2.0.exe(4M左右)%2.解压后能看到sqljdbc4.jar和sqljdbc.jar文件,针对电脑上JDK的版本选择导入文件,如JDK6.0导入sqljdbc4.jar%3.在command windows中输入:edit classpath.txt 打开路径配置文件 在文件最后一行添加sqljdbc4.jar的完整路径,%(不能同时加载sqljdbc4.jar和sqljdbc.jar的路径,否则不能正常连接数据库)。%4.在SQL Server中新建一个登录名sa,并设置密码为1214%5.采用如下代码在Matlab中连接SQL Server 2008clear;clc;close;databasename=test; %数据源名称username=sa; %登录名password=1214; %密码driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;databaseurl=jdbc:sqlserver:/localhost:1433;database=,databasename;conn = database(databasename,username,password,driver,databaseurl)ping(conn)tic%搜索条件sqlquery=select * from tabeltest% sqlquery=select * from stock where id= 1curs=exec(conn,sqlquery)curs=fetch(curs)%输出前几条记录% curs = fetch(curs, 3)% % 外部输入关键字搜索% Userid = input(Enter your id: , s)% curs = exec(conn, select * from stock where id= , Userid, )%设置检索结果的格式setdbprefs(DataReturnFormat,cellarray)%numeric、cellarray%行数、列数、字段名numrows=rows(curs)numcols=cols(curs)colnames=columnnames(curs)%字段名colsize = width(curs,2)%第二列字段宽度attributes = attr(curs,1)%第一列字段的属性data=curs.data% %修改记录% colnames = name, price;% newdata=lrz,158;% whereclause = where id = 12;% update(conn, stock, colnames, newdata, whereclause)% %插入记录% c=limingming , 2014-3-24 00:00:00 , 12 , 12 , 12.14% insert(conn,stock,name,time,price,int1,float1,c)% exec(conn,rollback)% exec(conn,commit)toc%关闭连接close(curs)close(conn)%远程服务器连接程序示例:databasename=zxdata; %数据源名称username=sa; %登录名password=1234; %密码driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;%驱动程序databaseurl=jdbc:sqlserver:/28:1433;database=,databasename;%其中28为所要读取远程服务器的公网IP地址conn = database(databasename,username,password,driver,databaseurl);%建立连接sqlquery=SELECT TOP 1 id FROM zxmain order by id desc;%SQL操作语句curs=exec(conn,sqlquery);%执行操作curs=fetch(curs);colnamesy=columnnames(curs);%字段名datay=curs.data;%获得数据close(curs);%关闭连接close(conn);%注:matlab用JDBC读取数据库需要配置相关工具箱29.符号函数Ft=(t)0*t;%初始化ft=(t)0*t;Ft=(t)1-exp(-(t/theta).beta);%括号内为自变量ft=(t)(beta/theta)*(t/theta).(beta-1).*(exp(-(t/theta).beta);%符号函数的求解过程F=(beta)1/beta+sum(sigma111.*log(fault111)/r-sum(fault111.(beta).*log(fault111)/(sum(fault111.(beta);beta=fsolve(F,1);30.matlab 图像作图改坐标1. 问:横坐标是0;80,纵坐标0;100,我想改成0;0.8和0;1.0,但是图形大小不会随坐标的比例缩小而改变。该用什么命令?最佳答案:x=0:80; y=1.25*x; plot(x,y)set(gca,XTickLabel,str2num(get(gca,XTickLabel)/100);set(gca,YTickLabel,str2num(get(gca,YTickLabel)/100);2.修改matlab输出图形的横坐标?问:如何通过程序仅修改matlab输出图形的横坐标?比如我在编完一段程序之后,输出图形,其横坐标为1 2 3 4 5 6 7 8 9 10现在,我想通过程序使横坐标相应的放大一定倍数,而原来的曲线形状保持不变,也就是想要得到的横坐标为2 4 6 8 10 12 14 16 18 20答:x=1 2 3 4 5 6 7 8 9 10;plot(x)xt=2 4 6 8 10 12 14 16 18 20;set(gca,xtick,xt)set(gca,xticklabel,xt)axis(2 10 1 10)3.matlab绘图如何让坐标轴上的数字变为字符?比如y轴是1的位置变为first,不是用text命令要全部覆盖,知道怎样实现?最佳答案举个例子 %先画个图 x=0:.1:5; y=exp(x); plot(x,y); %下面定义x轴的刻度 set(gca,XTick,1:5) %下面是x轴的刻度值 set(gca,XTickLabel,one,two,three,four,five)4.matlab中坐标轴移动问:刻度要标示在y=0这条直线上?最佳答案:x=-5:0.01:5;y=sin(pi*x/2(1/2);plot(x,y),hold onbox offplot(-5,5,0,0,k);x = get(gca,XTick);Lx = get(gca,XTickLabel);y = zeros(size(x)-0.1;text(x,y,Lx);5.matlab 中我的x轴坐标是自动显示为1,2,3,.,10,我想改成10,7,5,4,1怎么改? 问题补充:我的题目是 x从10 到0.1变化的,计算完后,从10到0.1画图,并且x坐标标定为10,2,0.4,0.1四点即可!请教高手帮忙!就这么点积分了!谢谢!/question/81879787.html?si=10最佳答案 x=0.1:0.1:10;plot(x,x.2)set(gca,XTick,0.1,10.1-2,10.1-0.4,10)set(gca,XTicklabel,10,2,0.4,0.1)%注:get(gca)可以知道axes里面的所有属性想怎么改就怎么改31.Figure图像图形的位置scrsz = get(0,ScreenSize);figure(Position,1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2)32.递归运算示例建立control555.m的M文件function y=control555(x)if x=1 y=1;else y=x*control555(x-1);end然后在命令窗口中输入 control555(5)ans = 12033.图像箭头指示文字,作图上添加文字并用箭头指示plot(0:2*pi,sin(0:2*pi),text(pi,0, leftarrow sin(pi),FontSize,18)34.GUI上添加表格和使用方法 matlab 中uitable的简单使用1、往表格里写数据,将数据初始化成cell格式。用最笨的循环方式,dat(i,j)=0;用set命令初始化表格,使其可编辑set(handles.uitable,ColumnName, columnname,.data,dat,.ColumnEditable, true);2、取出表格里的数据inputdata=get(handles.uitable,data)。将cell型数据转换成符号矩阵,定义一个子函数的方式。其中bolicdefine是一个m文件,在里面把要用到的用于计算的符号变量定义好。用symsfunction outsyms=transfer(instr)bolicdefinesi=size(instr,1);sj=size(instr,2);for j=1:sj;for i=1:si;outsyms(i,j)=eval(instri,j); %注意括号是endend3、将符号矩阵转换成数字矩阵。也是用定义一个子函数的方式。其中 paras是一个m文件,在里面把要用到的用于计算的符号变量的值全部定义好function outnum=transsyms2num(insyms)parassi=size(insyms,1);sj=size(insyms,2);for j=1:sj;for i=1:si;outnum(i,j)=eval(insyms(i,j); %注意括号是()endend这样可以实现,但是矩阵维数较大的时候,运算比较慢4.matlab GUI中处理选中的表格数据用法:1、uitable(numrows,numcolumns)建立指定行数和列数的表格2、uitable(data,columnNames)建立指定行名称和数据的的表格3、uitable(PropertyName1,Value1,)建立指定的属性名称和属性值的表格,属性名称和属性值:Column names字符串细胞数组来定义窗体的名称Data以细胞数组值来定义显示在窗体内的数据内容GridColor以颜色值或RGB向量来定义uitable内网格的颜色NumColumns以整数来定义窗体的行数NumRows以整数来定义窗体的列数Parent父窗口的句柄值,如果未定义,自动设为gcfPsition以四元素的向量定义uitable的位置ColumnWidth以整数来定义窗体的行宽RowHeight以整数来定义窗体的列高Editable以布尔数指定行是否可编辑(默认为1:可编辑)Units指定单位,有pixels,normalized,inches,points和centimeters5种Visible以布尔数指定窗体是否可见(默认为1:可见)DataChangedCallbackCallback函数的名称或者该函数的句柄值35.Matlab之对话框汇总1. 消息对话框msgbox函数。它不接受用户的任何输入,在用户单击OK按钮后,对话框自动关闭,然后返回程序中继续执行。 msgbox(欢迎使用MATLAB) % 建立一个没有标题的消息对话框 msgbox(欢迎使用MATLAB,MATALB,warn) % 建立一个有标题的消息对话框2. 错误对话框errordlg函数。 errordlg %建立一个默认参数的错误对话框 errordlg(这是一个错误对话框,MATLAB error) %建立一个名为MATLAB error的错误对话框3. 警告对话框warndlg函数。 warndlg %建立一个默认参数的警告对话框 errordlg(这是一个警告对话框,MATLAB warning)4. 帮助对话框helpdlg函数。 helpdlg(你需要帮助吗?,MATLAB Help)5. 进度条设置对话框waitbar函数。作用是反映程序运行的完成情况。h=waitbar(0,请稍等.)for i=1:10000waitbar(i/10000)end 6.输入对话框inputdlg函数。prompt=输入自变量x:,输入自变量y,输入自变量z;%设置提示字符串name=Enter trapeaia Data;%设置标题numlines=1;%指定输入数据的行数defAns=20,50,40;%设定默认值Resize=on;%设定对话框尺寸可调节answer=inputdlg(prompt,name,numlines,defAns,on)%创建输入对话框7. 列表对话框listdlg函数。p=path(path,C:MATLAB7 work);%设置路径,若为当前目录,可以省略这一步d=dir(C:MATLAB7work);%获取指针,若为当前目录,则d=dirstr=;%获取目录内的文件名sel,ok=listdlg(Liststring,str,PromptString,请选择文件 ,SelectionMode,Multiple)%创建列表对话框。文件选择成功后,单击“OK按钮,系统将选择好的文件序号存入相应向量sel,参数ok的值为1。8.问题对话框questdlg函数。提出一个问题,等待用户回答。默认下回答按钮有三个:Yes、No、Cancel。当用户单击任何一个按钮时,系统将该按钮名保存在一个变量(ButtonName)中。如果用户关闭对话框,则系统将ButtonName置为空。 ButtonName=questdlg(你准备好了吗?,MATLAB quest,Yes,No,Cancel,Yes)9.路径选择对话框uigedir函数。用于用户查找和选择路径。 directoryname=uigetdir(C:MATLAB7work,浏览文件件)10.选择文件对话框uigetfile函数。用于用户选择所需的文件。 fn,pn,fi=uigetfile(*.m,select a M-file)%打开一个选择M文件的对话框,并选择一个文件 fn,pn,fi=uigetfile(.*.m;*.fig;*.mat;,All MATLAB File(*.m,*.fig,*.mat,*.mdl);*.m,M-file(*.m);.*.fig,Figure(*.fig);.*.mat,MAT-flie(*.mat);.*.mdl,Models(*.mdl);.*.*,All Flies(*.*),.Pick a file)%打开一个选择多种文件的对话框,并选择一个文件11.文件保存对话框uiputfile函数。用于保存文件。 fn,pn,fi=uiputfile(*.m,Save selected a M-file) fn,pn,fi=uiputfile(.*.m;*.fig;*.mat;,All MATLAB File(*.m,*.fig,*.mat,*.mdl);*.m,M-file(*.m);.*.fig,Figure(*.fig);.*.mat,MAT-flie(*.mat);.*.mdl,Models(*.mdl);.*.*,All Flies(*.*),.Save a file)%建立多种保存文件的对话框,并选择一个文件12.页面设置对话框pagesetupdlg 函数。用来设置页面的各种属性、参数。调用格式为:dlg=pagesetupdlg(fig)该命令创建一个页面设置对话框,在该对话框用户可以设置页面的各种属性和参数。该命令只支持单一图形窗口的页面设置,参数fig也必须是单一的图形句柄,不可以是图形句柄向量或 simulink图。 fig=figure; dlg=pagesetupdlg(fig)13.打印设置对话框printdlg 函数。用户可以对各种打印参数进行设置。x=-pi:0.02:pi;y=cos(x);fig=figure;plot(x,y);printdlg(fig);%打开Windows打印对话框printdlg(-crossplatform,fig);%打开MATLAB打印对话框14.颜色设置对话框uisetcolor 函数。用于用户设置图形的前景色或背景色。 c=uisetcolor %建立一个颜色选择对话框 %建立一个颜色对话框,并设置对话框的初始颜色,然后选择一种颜色用于一个图形对象。x=0:0.02:2*pi;y=sin(x);h=figure;plot(x,y);c=uisetcolor(h,select color)15. 字体设置对话框uisetfont函数。用于用户设置或修改文本字体、坐标轴或设置控件对象的显示文本的字体属性。 s=uisetfont % 建立一个默认字体设置对话框,并设置一种字体。 对控件中的文本进行设置T1=uicontrol(style,pushbutton,string,确定,.position,200 320 60 20); %创建一个按钮T2=uicontrol(style,pushbutton,string,取消,.position,200 220 60 20); %创建一个按钮s=uisetfont(T1) %打开字体设置对话框set(T2,s) %将T1的设置复制到T236.安装工具箱方法当然如果你对Matlab的命令比较熟悉的话,你可以直接使用命令进行工具箱安装操作,方法如下(1)将工具箱解压到任意路径,但是推荐MatlabRoot下的Toolbox中(2)在Matlab中输入1.addpath(Your_ToolBox_Full_Path)%注意必须是文件夹路径2.savepath(3)更新搜索目录,可使用上面的界面操作,当然也可以命令行1.rehash toolboxcache37.发声sp=actxserver(SAPI.SpVoice);sp.Speak(hello, world)sp.Speak(人之初,性本善,性相近,习相远)38.归一化三种方法在matlab里面,用于归一化的方法共有三种 :(1)用matlab语言自己编程,通常使用的函数有以下几种:1.线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue) (归一到0 1 之间)y=0.1+(x-min)/(max-min)*(0.9-0.1)(归一到0.1-0.9之间)说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。(2)premnmx、tramnmx、postmnmx、mapminmaxpremnmx函数用于将神经网络的输入数据或输出数据进行归一化,归一化后的数据将分布在-1,1区间内。premnmx语句的语法格式是:Pn,minp,maxp,Tn,mint,maxt=premnmx(P,T),其中P,T分别为原始输入和输出数据。在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx函数:tramnmx语句的语法格式是:PN=tramnmx(P,minp,maxp)其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。网络输出结果需要进行反归一化还原成原始的数据,常用的函数是:postmnmx。postmnmx语句的语法格式是:PN = postmnmx(P,minp,maxp)其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。还有一个函数是mapminmax,该函数可以把矩阵的每一行归一到-1 1.mapminmax语句的语法格式是:y1,PS = mapminmax(x1)其中x1 是需要归一的矩阵 y1是结果。当需要对另外一组数据做归一时,就可以用下面的方法做相同的归一了y2 = mapminmax(apply,x2,PS)当需要把归一的数据还原时,可以用以下命令:x1_again = mapminmax(reverse,y1,PS) (3)prestd、poststd、trastdprestd归一到单位方差和零均值。pminp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。39拟合与回归函数命令小结多元线性回归regress一对一的拟合ployfit多元多项式回归rstool自定义模型回归nlinfit剔除奇异点的拟合robust拟合工具界面cftool40消除运行MATLAB生成的exe程序的dos黑屏的办法基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:方法一:直接用mcc e filename方法二: 在命令窗口输入:cd(prefdir)edit compopts.bat在打开的文件最后添加以下语句:A.VC环境下:set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartupB.LCC环境下:set LINKFLAGS=%LINKFLAGS% -subsystemwindowsC. Borland:set LINKFLAGS=%LINKFLAGS% -aa保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了41在使用LaTex字符,标注、等字符的方法1.Tex字符表在text对象的函数中(函数title、xlabel、ylabel、zlabel或text),说明文字除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例如,text(0.3,0.5,sin(omegat+beta),Fontsize,30)将在图形窗口的(0.3,0.5)位置得到标注效果sin(t+)。Tex字符在输出一些数学公式时经常使用,它只能由类型为text的对象创建。函数title、xlabel、ylabel、zlabel或text都能创建一个text对象,因此Tex字符转义符(带“”的字符串)经常作为这些函数的输入参数。Tex字符及其函数见下表。函数字符代表符号函数字符代表符号函数字符代表符号alphaaupsilonusimbetabphifleqgammagchicinftydeltadpsiYclubsuitepsiloneomegawdiamondsuitzetazGammaGheartsuitetahDeltaDspadesuitthetaqThetaQleftrightarrowvarthetaJLambdaLleftarrowiotaiXiXuparrowkappakPiPrightarrowlambdalSigmaSdownarrowmumUpsilonUcircnunPhiFpmxixPsiygeqpipOmegaWproptorhorformallpartialsigmasexists$bulletvarsigmaVnidivtautcongneqequivapproxalephImRewpotimesoplusoslashcapcupsupseteqsupsetsubseteqsubsetintinoorfloorlceilnablalfloorcdotldotsperpnegprimewedgetimes0rceilsurdmidveevarpivcopyrightlanglerangle如果要输出希腊字母,可以使用texlabel函数将希腊字母的变量名转化为希腊字母的函数,供函数title、xlabel、ylabel、zlabel或text使用。texlabel转换MATLAB表达式为等价的Tex格式字符串。它处理希腊字母的变量名为实际显示的希腊字母字符串。希腊字母的变量名为“”后面的字符串。例如: texlabel(alpha)ans =alpha text(0.5,0.5,alpha2) text(0.5,0.5,texlabel(alpha2)2. Tex字符格式Tex字符还可以设置字体、颜色和位置。(1)Tex字符的字体设置有如下6种。bf:设置字体为粗体字。it:设置字体为斜体字。sl:设置字体为斜体字,很少使用。rm:设置字体为正常字体。fontname字体名:设置字体名。例如:fontname宋体。fontsize字体大小:设置字体大小。例如:fontsize16。每次设置时,it、sl、rm只能选择一种。(2)Tex字符的颜色设置有下面两种方法。color颜色名颜色名:颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、cyan、gray、barkGreen、orange和lightBlue。例如:colormagentamagenta。colorrgba b c:设置字体颜色为RGB矩阵a b c所表示的颜色。 a、b和c都在0 1 范围内。例如:colorrgb0 .5 .5。(3)Tex字符的位置有2种设置。_:表示下标。:表示上标。42MATLAB二进制文件与文本文件文本文件将文件看作由一个一个字节组成,每个字节最高位都是0。文本文件只使用了一个字节中的低7位来储存所有的信息,而二进制文件将字节中的所有位都用上了。文件按照文本方式或二进制方式打开,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理方式也就不同。按照文本方式打开,打开时要进行转换,将每个字都转换成ASCII码;而按照二进制方式打开时,不会进行任何转换。文本文件和二进制文件的编辑方式也不同。例如,在用记事本进行文本编辑时,进行编辑的最小单位是字节;而对二进制文件进行编辑时,最小单位是位,可使用UltraEdit软件编辑二进制文件。从文件编码方式来看,文件可分为ASCII码文件和二进制码文件。ASCII码文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应字符的ASCII码。例如,数5678共占用4字节,“5”、“6”、“7”和“8”的ASCII码依次为53、54、55、56,存储形式为ASCII:00110101 00110110 00110111 00111000十进制码:5 6 7 8二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为0001011000101110,只占两字节。验证如下: dec2bin(5678)ans =0001011000101110 abs(5678)ans = 53 54 55 56 dec2bin(53)ans =00110101 double(5678)ans = 53 54 55 56 bin2dec(00110101)ans = 53 char(ans)ans =543MATLAB函数句柄函数句柄是一种特殊的数据类型,它提供了间接调用函数的方法,类似于C语言中的指针,只不过这里是指向一个函数而已。函数句柄包含了函数的路径、函数名、类型以及可能存在的重载方法,必须通过专门的定义创建,而一般的图像句柄是自动建立的。可以使用函数句柄来调用其他函数,也可以将函数句柄存储在数据结构中,方便以后使用(如句柄图形中的回调函数)。创建函数句柄使用或者srt2func命令。采用创建函数句柄,是在函数名前加一个“”标志,并且不能附加函数的路径,即函数句柄=函数名。MATLAB映射句柄到指定的函数,并在句柄中保存映射信息。由于没有附加函数路径信息,如果同一个名字的函数有多个,函数句柄映射到哪个函数呢?这取决于函数调用的优先原则。函数调用的优先级从高到低排列如下:变量。调用优先级最高。MATLAB搜索工作空间是否存在同名变量,如有则停止搜索。子函数。私有函数。类构造函数。重载方法。当前目录中的同名函数。路径中其他目录中的函数。调用优先级最低。如果查询同名函数中究竟哪个函数被调用了,用which函数查询。例如: which functionD:Program FilesMATLABR2010btoolbox function.m当一个函数句柄被创建时,它将记录函数的详细信息。因此,当使用函数句柄调用该函数时,MATLAB会立即执行,不进行文件搜索。当反复调用一个文件时,可以节省大量的搜索时间,从而提高函数的执行效率。使用函数句柄有如下好处:提高运行速度。因为MATLAB在调用函数时每次都要搜索所有路径,而路径又非常多,所以一个函数在程序中需要经常用到的话,使用函数句柄会提高运行速度。使用方便。比如说,用户在某目录运行函数句柄后,创建了本目录的一个函数句柄,当用户转到其他目录下时,创建的函数句柄可以直接调用,而不需要把相应的函数文件拷贝过来。因为在用户所创建的函数中,已经包含了路径。44.GUI控件使用大全,范例clear,clc,closef=figure;set(f,toolbar,none,menubar,none,resize,off,position,140 52 1060 656);set(f,numbertitle,off,name,GUI);%设置菜单项menus

温馨提示

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

最新文档

评论

0/150

提交评论