ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:304.40KB ,
资源ID:11403732      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11403732.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab的函数类型.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab的函数类型.docx

1、matlab的函数类型matlab的函数类型作者:XLFinance来源: XLFinance打印 邮寄返回匿名函数匿名函数的作用在于可以快速生成简单的函数,而不需创建m文件,匿名函数通常在命令区或函数、脚本中运行时创建。匿名函数的生成语法是 fhandle = (arglist) expr,其中expr代表函数体,arglist是逗号分隔的参数列表。符号代表创建函数句柄,匿名函数必须使用此符号,匿名函数的执行语法是:fhandle(arg1, arg2, ., argN),fhandle为匿名函数句柄名称。简单的匿名函数示例:sqr = (x) x.2,该匿名函数计算给定参数x的平方值,执行

2、可以使用 a = sqr(5)形式。再如:sumAxBy = (x, y) (A*x + B*y)(使用多个参数),t = () datestr(now)(无参数),A = (x)x.2, (y)y+10, (x,y)x.2+y+10(匿名函数数组)。多重匿名函数等同于:g = (c) (quad(x) (x.2 + c*x + 1), 0, 1);其中(x) (x.2 + c*x + 1)为第一重匿名函数,而后作为参数继续传递给积分函数。再如求解函数 a*exp(x)+b*x=0,则使用在m函数文件调用匿名函数:function f0 = test(a, b, x0) f0=fsolve(x

3、)(a*exp(x)+b*x),x0);主函数任意m文件中的第一个函数称呼为主函数,主函数之后可能附随多个子函数。主函数是在命令区或其它函数中可调用的唯一一个该m文件中所定义的函数。子函数一个m文件中可能包含多个函数。主函数之外的函数都称为子函数,这些子函数只能为主函数或同一m文件中的其它子函数可见。例如:function avg, med = newstats(u) % 主函数n = length(u);avg = mean(u, n);med = median(u, n);function a = mean(v, n) % 子函数1a = sum(v)/n;function m = med

4、ian(v, n) % 子函数2w = sort(v);if rem(n, 2) = 1m = w(n+1) / 2);elsem = (w(n/2) + w(n/2+1) / 2;end而即便在相同m文件中,子函数内定义的变量也不可为其它子函数所使用,除非定义为全局或作为参数传递。私有函数私有函数仅对满足条件的特定函数开放。私有函数存放于名为private的子目录下,访问条件是:存放于该private子目录的上一层父目录中的m文件函数从存放于该private子目录上一层父目录中的m文件函数中发起调用的m脚本嵌套函数任一m函数体内所定义的函数称为外部函数的嵌套函数,matlab支持多重嵌套函数

5、,即在嵌套函数内部继续定义下一层的嵌套函数,形如:function x = A(p1, p2)function y = B(p3).end.EndMatlab函数体通常不需end结束标记,但如包含嵌套函数,则该m文件内的所有函数(主函数和子函数),不论是否包含嵌套函数都需显式end标记。嵌套函数的调用规则:1)父级函数可调用下一层嵌套函数;2)相同父级的同级嵌套函数可相互调用;3)处于低层的嵌套函数可调用任意父级函数。嵌套函数中的局部变量在其任一层内部嵌套函数或外部父级函数中都可访问,例如下面的两个函数都是合法的:而下例函数中的参数调用是不合法的,由于变量x分别处于两个独立的工作区:嵌套函数的

6、输出变量不为外部函数可见。matlab中的数据导入和导出作者:XLFinance来源: XLFinance打印 邮寄返回Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。Matlab支持的主要数据文件类型和对应函数如下:导入文本文件文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。数据文件可能附带标题行和行列头标签。数值数据对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1

7、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

8、, 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和工作表信息。如:type, sheets = xlsfinfo(tempdata.xls) Xlswrite导出数据d = Time, Temp;

9、 12 98; 13 99; 14 97命令xlswrite(tempdata.xls, d, Temperatures, E1)将单元格数组d的数据写出至tempdata.xls文件,新建工作表Temperatures,从该工作表的E1单元格开始写入。Xlsread读入数据ndata = xlsread(tempdata.xls, Temperatures)ndata, headertext = xlsread(tempdata.xls, Temperatures)matlab图形用户界面简介作者:XLFinance来源: XLFinance打印 邮寄返回通过GUIDE创建图形用户界面GUI

10、DE是Matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。GUIDE的空白界面如下:GUIDE提供众多个人偏好和选项设定,从文件菜单中的偏好可进入设定窗口:GUIDE中的界面设计直接通过拖拉和拖放操作完成,如界面尺寸、控件等。所有控件有对应的属性,通过右键菜单中的“Property Inspector”可进入属性操作,所有控件有唯一的tag,tag在事件代码中作为具体控件的标识。GUIDE提供了控件排列、tab设置、菜单栏设计等功能,在r2006a版本中,GUIDE不提供工具条设计功能,但是可以通过程序创建工具栏。通过GUIDE设计界面并

11、编写对应的程序代码后保存生成.fig(界面)和.m(代码)文件。GUI编程:GUI 回调(Callback)回调代码和具体的GUI控件或图表相关,用于控制GUI行为,如对点击、菜单选择、拖放等事件的响应,也即所谓事件驱动编程。不同的GUI控件可能会有不同的回调类型,定义为控件属性。GUI文件GUI文件包括.fig和.m文件,二者存放于相同目录下。主函数的名称和m文件的名称相同,主函数之外的每个回调都是子函数。GUIDE在生成m文件时,自动包括每个控件常用的回调代码模板,初始化代码,opening函数,输出函数等。在回调和控件之间建立关联GUI通常包含多个控件,GUIDE使用控件的回调属性和该控

12、件的回调关联。GUIDE将每个控件最常用的回调属性的值设定为自动即%automatic,在保存文件之后,该值将被替换为调用序列的Matlab表达式,包括控件的tag属性和回调属性的名称,例如:其中,simple_gui是GUI m文件的名称,也是其主函数的名称。其余参数产生pushbutton1_Callback的输入参数,gcbo返回回调对象句柄(即pushbutton1),guidata(gcbo)返回该GUI的句柄结构。回调语法GUIDE生成回调语法和参数的模板如下: % - Executes on button press in pushbutton1.function pushbut

13、ton1_Callback(hObject, eventdata, handles) %#ok% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA).其中,第一个注释行描述触发此回调过程执行的时间,而后是函数定义行和输入参数描述。在最后注释行之后可以开始添加代码。回调函数的命名是自动生成的如 pushbutton1_

14、Callback,变更名称可以通过改变控件的tag属性或callback属性实现。句柄结构GUIDE创建一个包含所有控件句柄的句柄结构,并使用控件的tag属性作为句柄结构元素的命名。句柄结构数据作为参数传递给所有回调函数,共享属性值和应用数据。初始化回调GUIDE在m文件中自动生成两个回调函数:初始化函数和输出函数。初始化函数是GUI m文件第一个执行的回调函数,在界面可见之前和控件创建之后,因此初始化函数可以用于创建数据或从外部读入数据。初始化函数的代码模板如下:% - Executes just before mygui is made visible.function mygui_Ope

15、ningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to mygui (see VARA

16、RGIN)% Choose default command line output for myguihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes mygui wait for user response (see UIRESUME)% uiwait(handles.mygui);函数的前三个参数和之前的描述相同,第4个参数允许从命令行向初始化函数传递参数,初始化函数会将此参数添加至句柄结构,从而为所有回调进程可见。例如在命令行中输入 simple_gui(

17、Position, 71.8 44.9 74.8 19.7),则会在指定的位置打开用户界面,因为position是一个有效的图形属性,而如输入参数不是有效的图形属性,则需在初始化函数中添加代码以正确使用该传入参数。模板中handles.output = hObject向句柄结构中添加新的元素,并赋值为GUI句柄本身hObject。代码guidata(hObject, handles)保存句柄结构,对于句柄结构的任何变动都需使用此函数执行保存操作。输出函数输出函数的用途是将执行结果返回至命令行,在初始化函数释放控制和命令行获得控制之前执行。默认情况下,输出函数包含一个单元格数组输出参数,为句柄结

18、构中的output元素。管理应用数据Matlab提供三种方式可以用于在GUI环境下管理应用定义数据:GUI数据、应用数据和用户数据属性。GUI数据GUI数据使用guidata函数管理。GUI数据只能存储一个变量,因此通常定义为结构从而可添加字段。GUIDE自动使用guidata函数创建和维护handles结构,该结构包含GUI的所有控件句柄,并作为参数自动传递给所有回调函数。在使用GUIDE创建的用户界面中,用户不能使用guidata函数管理任何除了handles结构之外的变量,否则将会重写handles结构并导致GUI无法工作。如果希望使用GUI数据在回调函数中共享应用定义数据,必须将数据保

19、存在handles结构的字段当中。例如:handles.number_errors = 0;该命令创建一个名为number_errors的字段并赋值为0,而后再使用guidata(hObject,handles)保存结构。应用数据应用数据方法可以创建特定对象的用户自定义属性。其函数包括:setappdata(设定数据),getappdata(访问数据),isappdata(判断存在与否)和rmappdata(删除)。在GUIDE中创建应用数据的示例如下:function mygui_OpeningFcn(hObject, eventdata, handles, varargin)matrice

20、s.rand_35 = randn(35);setappdata(hObject,mydata,matrices);上面的代码创建正态分布随机矩阵并创建应用数据名称mydata存储该数据,由于在初始化中执行,该应用数据和GUI figure相关。现在假定需要从一个按钮对象pushbutton1的回调中访问并修改数据:获得数据,注意mydata和figure1(GUI界面的tag)相关:function mygui_pushbutton1(hObject, eventdata, handles)matrices = getappdata(handles.figure1,mydata);添加新字段

21、matrices.randn_50 = randn(50);保存数据修改setappdata(hObject,mydata,matrices);用户数据所有的GUI控件包括界面都有一个userdata属性。例如下面的代码创建和文本框控件关联的用户输入数据并在按钮空间的回调函数中访问:function mygui_edittext1(hObject, eventdata, handles)mystring = get(hObject,String);set(hObject,UserData,mystring);function mygui_pushbutton1(hObject, eventda

22、ta, handles)string = get(handles.edittext1,UserData);m文件编程和函数参数作者:XLFinance来源: XLFinance打印 邮寄返回M文件包括脚本和函数。脚本不接受输入参数,也不返回输出参数,一般用于多步骤的自动化执行。M文件的基本组成包括:函数定义行:定义函数名称、输入和输出参数的数量和顺序H1行:函数帮助概述帮助文本:详细帮助信息函数(脚本)体注释例如:函数参数检查函数传入参数数量:函数nargin和nargout可以用于确定函数传入和输出参数的数量。function c = testarg1(a, b)if (nargin = 1

23、)c = a . 2;elseif (nargin = 2)c = a + b;end传递可变数量的参数:函数varargin和varargout可以用于传递任意数量传入和输出参数。对于输入函数varargin,Matlab将所有参数转换为单元格数组。例如:function testvar(varargin)for k = 1:length(varargin)x(k) = varargink(1); y(k) = varargink(2);endxmin = min(0,min(x);ymin = min(0,min(y);axis(xmin fix(max(x)+3 ymin fix(max

24、(y)+3)plot(x,y)上面的函数不限定输入参数数量,而是在代码中获取此信息,函数中使用varargink(i)访问输入参数数据,花括号表明该数组为单元格,因此k用于访问第k个单元格,而(i)访问该单元格中的第i个元素。保存上面的函数后在命令区内可以输入:testvar(2 3,1 5,4 8,6 5,4 2,2 3)testvar(-1 0,3 -5,4 2,1 1)对于输出函数,需要在函数代码中执行此转换,例如:function varargout = testvar2(arrayin)for k = 1:nargoutvarargoutk = arrayin(k,:); % Cel

25、l array assignmentend保存函数后在命令区内输入:a = 1 2; 3 4; 5 6; 7 8; 9 0;p1, p2, p3, p4, p5 = testvar2(a)可变数量的输入或输出参数可以作为参数列表中的成员,例如:function out1,out2 = example1(a,b,varargin)function i,j,varargout = example2(x1,y1,x2,y2,flag)调用函数在命令行或其它m文件中调用m函数文件时,matlab将函数解析成为代码并写入内存,这些伪代码一直驻留直至被clear函数清除或matlab退出。在多个函数有相同

26、名称情况下,matlab根据函数效力范围和优先次序决定所调用的函数。m程序基本部件和程序控制作者:XLFinance来源: XLFinance打印 邮寄返回变量和命名变量分为局部变量、全局变量以及只在M文件函数中存在的持续变量。局部变量无需特别定义,全局变量和持续变量分别使用global和persistent定义。函数namelengthmax返回变量命名的最长字符数。函数isvarname用于校验变量取名是否合法。应避免使用函数名作为变量命名,否则将无法使用该函数直至使用命令clear清除。不同的变量有不同的范围和寿命,base工作区内的变量和m脚本文件共享,并在结束matlab会话之前保存

27、状态。M函数文件中的变量单独存在,和base工作区及其它工作区变量隔离,在函数执行即结束,除非被声明为全局。Matlab保留了部分关键字,不用于变量命名,iskeyword函数可以查看这些关键字信息。运算符和表达式运算符包括算术运算、关系运算符和逻辑运算符。关系运算符:= 等于,=不等于逻辑运算符& 对于数组中的每个元素位置均为真(非0)时返回1,否则返回0| 对于数组中的每个元素位置至少有一个为真(非0)时返回1,否则返回0 非Xor 对于数组中的每个元素位置只有一个为真(非0)时返回1,否则返回0Any 对于向量中每一元素至少有一个为真时返回1All 对于向量中每一元素均为真时返回1因此,

28、A&B 等同于 and (A,B)A|B 等同于 or(A,B)A等同于 not(A)Eval函数函数eval将字符串作为matlab命令执行,表达式为 eval(string)。例如 eval(t = clock) 返回当前时间的日期向量。再如:for n = 1:10eval(P, int2str(n), = n . 2)end该循环执行n=1至10时 p=n.2的值。feval函数函数 feval用于执行函数,第一个参数必须为函数句柄或字符串形式的函数名称。例如:fun = sin; cos; log;k = input(Choose function number: );x = inp

29、ut(Enter value: );feval(funk, x)程序控制条件控制:if, else, and elseifif logical_expressionstatementsendif rem(a, 2) = 0disp(a is even)b = a/2;endswitch, case, otherwiseswitch expression (scalar or string)case value1statements % 在表达式为value1时执行case value2statements %在表达式为value2时执行.otherwisestatements endswitch varcase 1disp(1)case 2,3,4disp(2 or 3 or 4)case 5disp(5)otherwisedisp(something else)end循环控制For循环for index = start:increment:endstatementsendfor m = 1:5for n = 1:100A(m,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1