精华内容
下载资源
问答
  • [整理]Matlab函数定义方法

    千次阅读 2020-12-20 19:00:32
    Matlab函数定义方法Matlab自定义函数的六种方法n1、函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件;n2、函数文件+子函数:定义一个具有多个自定义函数的M文件;n3、Inline:无需M文件,直接定义;...

    Matlab中函数定义方法

    Matlab自定义函数的六种方法

    n1、函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件;

    n2、函数文件+子函数:定义一个具有多个自定义函数的M文件;

    n3、Inline:无需M文件,直接定义;

    n4、匿名函数;

    n5、Syms+subs:无需M文件,直接定义;

    n6、字符串+subs:无需M文件,直接定义。

    ------------

    1、函数文件+调用函数文件:定义多个M文件

    % 调用函数文件:myfile.m

    clear

    clc

    for t=1:10

    y=mylfg(t);

    fprintf(‘M^(1/3)=%6.4f\n’,t,y);

    end

    %自定义函数文件:

    mylfg.m

    function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

    Y=x^(1/3);

    注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

    2、函数文件+子函数:定义一个具有多个子函数的M文件

    %命令文件:funtry2.m

    function []=funtry2()

    for t=1:10

    y=lfg2(t)

    fprintf(‘M^(1/3)=%6.4f\n’);

    End

    function y=lfg2(x)

    Y= x^(1/3);

    %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。

    注意:函数定义格式

    在matlab中应该做成M文件,文件名要和你文件里的function后面的函数名一致,在File新建一个M-file在M-file里编辑函数,其格式为:

    function [输出实参表]=函数名(输入实参数)

    注释部分

    函数体语句

    return语句(可以有可以没有)

    如果是文件中的子函数,则可以任意取名,也可以在同一个文件中定义多个子函数:

    例:function [max,min]=mymainfun(x)  %主函数

    n=length(x);

    max=mysubfun1(x,n);

    min=mysubfun2(x);

    function r=mysubfun1(x,n)  %子函数1

    x1=sort(x);

    r=x1(n);

    function r=mysubfun2(x)  %子函数2

    x1=sort(x);

    r=x1(1);

    详细见后文:matlab中同一文件定义子函数的方法

    【说明】可以将一个主函数和多个子函数写在一个m文件中,文件名是主函数名,第一个函数是主函数,后面跟的函数都是这个函数中需要调用的子函数或者子子函数。即该文件必须是以function打头的函数文件,不能是前面不是函数,后面跟一串函数。强调一下,前面是命令后面加函数是不行的,必须前面也是函数!前面无参数输入的而是一段命令,直接将这些命令定义为一个无参数的函数就可以了。

    3、Inline:无需M文件,直接定义

    %inline命令用来定义一个内联函数:f=inline(‘函数表达式’,

    ‘变量1’,’变量2’,……)。

    调用方式:y=f(数值列表)

    %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。

    例如:

    f=inline(‘x^2+y’,’x’,’y’);

    z=f(2,3)

    Ans=7

    注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。

    例:

    Clear

    Clc

    f=’x^2’;

    Syms x g;

    g=x^2;

    h=inline(‘x^2’,’x’);

    4. 匿名函数

    使用matlab函数句柄操作符@,可以定义指向matlab内置函数和用户自定义函数的函数句柄,函数句柄也可以像函数一样的使用。例如:

    >>x=-pi:0.1:pi;

    >>

    fh={@cos,@sin};

    fh =

    @cos @sin

    >>plot(fh{2}(x))

    5、Syms+subs:

    无需M文件,直接定义

    用syms定义一个符号表达式,用subs调用:

    Syms f x

    %定义符号

    f=1/(1+x^2);

    %定义符号表达式

    subs(f,

    ‘x’,代替x的数值或符号)

    注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。

    这种函数定义方法的特点是,可以用符号进行替换

    Syms f x

    f=1/(1+x^2);

    subs(f,

    ‘x’,’y^2’)

    ans=

    1/(1+(y^2)^2)

    注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。

    6、字符串+subs:无需M文件,直接定义

    直接定义一个字符串,用subs命令调用。例如:

    f=’1/(1+x^2)’

    %定义字符串

    z=subs(f,’x’,2)

    g=subs(f,’x’,’y^2’)

    注:优点是,占用内存最少,定义格式方面自由。

    缺点是,无法对字符进行符号转化。

    当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f).例如:

    f=’x^2*y’;

    x=2;y=3;

    subs(f)

    ans=12

    -------------------------------------------

    详细:Matlab中同一文件定义子函数的方法

    有时子函数可能很短,就几行,可能希望将多个函数定义放在同一个.m文件中,这里就存在一个子函数的定义问题。

    在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同

    在一个m文件中通常有两种定义子函数的方法:

    1.嵌套定义

    function mainFunc()

    ...

    a = myfunc1();

    ...

    function myfunc1()

    ...

    end

    end

    2.非嵌套定义

    function mainFunc()

    ...

    a = myfunc1();

    ...

    end

    function myfunc1()

    ...

    end

    在第二种情况中,myfunc1和主函数就是两个独立的函数,和把它们写在两个独立的文件

    中没有差别。变量名想怎么起怎么起,不会有任何冲突。

    而第一种情况中,myfunc1会和主函数共享变量名。这种情况下,使用相同的变量名,如

    果不是故意为之,就不合适了。

    对于嵌套函数,函数定义中的end必不可少。

    例子:

    下面是某个.m脚本文件(son_function.m文件)中的内容:

    %

    %-----------------------------------------------------------------------

    function son_function(

    ) %主函数必须位于最上方

    %子函数举例

    max1=find_max(1,2,3)

    max2=find_max(7,3,9)

    function

    max=find_max(a,b,c) %子函数

    if

    (a>=b)&(a>=c)

    max=a;

    elseif

    (b>=a)&(b>=c)

    max=b;

    else

    max=c;

    end

    %

    %-----------------------------------------------------------------------

    注意:

    M文件中将函数的调用直接写到m脚本文件中的情况是不允许的,必须也把调用写成函数的形式,或者将子函数都写成单独的m文件。

    如将上程序中的第一行屏蔽掉,即

    % function son_function(

    )

    会出现下面的错误

    Function

    definitions are not permitted at the prompt or in

    scripts.

    ---------------------------------

    下面一段文字是摘自matlab帮助中的一段文字:end在function中的使用

    end

    also marks the termination of an M-file

    function, although in most cases, it is optional. end statements

    are required only in M-files that employ one or more nested

    functions. Within such an M-file, every function (including

    primary, nested, private, and subfunctions) must be terminated with

    an end statement. You can terminate any function type with end, but

    doing so is not required unless the M-file contains a nested

    function

    尽管大多数情况下,end在function的用法是可选的,但也可以用它标记一个M文件函数的结束。end语句仅在使用一个或多个嵌套函数的情况下才是要求的。在诸如此类嵌套函数的M-文件中,每一个函数(包括主调函数,嵌套函数,私有函数和子函数)必须以一个end语句来结束。可以使用end结束任一函数类型,但这样做除了M-文件包含一个嵌套函数其他情况并非必要的。

    展开全文
  • matlab字符串函数

    千次阅读 2018-05-29 17:03:46
    字符串操作函数:eval() :执行运行字符串的表达式 num2str() :将数字转换为字符串,由于主要接触的还是在科学计算方面,使用较多的还是在多变量批量命名上。类似的函数还有int2str,mat2str,str2double等,...
    字符串操作函数:
    • eval()   :执行运行字符串的表达式 
    • num2str()  :将数字转换为字符串,由于主要接触的还是在科学计算方面,使用较多的还是在多变量批量命名上。类似的函数还有int2str,mat2str,str2double等,功能与之类似
    • deblank()   : 删除字符串的尾部空格
    • strcat():把多个字符串水平方向依次连接
    • lower()和upper():可以把字符串的所有字母转为小写和大写格式
    • strcat():把多个字符串水平方向依次连接
    • strvcat():字符串按竖直方向连接
    • strjust(S,mode):按照格式调整字符串的对其方式,mode = ‘left’, ‘right’, ‘center’ 
    • strcmp():比较两个字符串,完全相同时返回逻辑变量1,否则为0
    • strcmpi():忽略字母大小写的方式比较两个字符串
    展开全文
  • matlab中最基本的函数plot()的用法标签:matlab plot 指令5.1 二维平面图形5.1.1 基本图形函数plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好...

    matlab中最基本的函数plot()的用法

    标签:matlab plot 指令

    5.1 二维平面图形

    5.1.1 基本图形函数

    plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是

    说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制

    曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就由n 条曲线。

    (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。

    (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘

    制多条曲线。

    例5.1.1 画出一条正弦曲线和一条余弦曲线。

    >> x=0:pi/10:2*pi;

    >> y1=sin(x);

    >> y2=cos(x);

    >> plot(x,y1,x,y2)

    图5.1.1 函数plot 绘制的正弦曲线

    在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专

    门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。

    - 2 -

    表5.1.1 绘图参数表

    色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式

    y 黄- 实线. 点< 小于号

    m 紫:点线o 圆s 正方形

    c 青-. 点划线x 叉号

    d 菱形

    r 红- - 虚线+ 加号h 六角星

    g 绿* 星号p 五角星

    b 蓝v 向下三角形

    w 白^ 向上三角形

    k 黑> 大于号

    例如,在上例中输入

    >> plot(x,y1,'r+-',x,y2,'k*:')

    则得图5.1.2

    图5.1.2 使用不同标记的plot 函数绘制的正弦曲线

    5.1.2 图形修饰

    MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。

    函数含义

    grid on (/off) 给当前图形标记添加(取消)网络

    xlable(‘string’) 标记横坐标

    ylabel(‘string’) 标记纵坐标

    title(‘string’) 给图形添加标题

    展开全文
  • Matlab strsplit函数语法

    2021-04-21 08:32:42
    Split a string on' 'and'ain', treating multiple delimiters as one. Specify multiple delimiters in a cell array of strings.str = 'The rain in Spain stays mainly in the plain.';[C,matches] = strsplit...

    Split a string on ' ' and 'ain', treating multiple delimiters as one. Specify multiple delimiters in a cell array of strings.

    str = 'The rain in Spain stays mainly in the plain.';

    [C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)

    C =

    'The' 'r' 'in' 'Sp' 'stays' 'm' 'ly' 'in' 'the' 'pl' '.'

    matches =

    ' ' 'ain ' ' ' 'ain ' ' ' 'ain' ' ' ' ' ' ' 'ain'

    Split the same string on whitespace and on 'ain', using regular expressions and treating multiple delimiters separately.

    [C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',...

    false, 'DelimiterType','RegularExpression')

    C =

    'The' 'r' '' 'in' 'Sp' '' 'stays' 'm' 'ly' 'in' 'the' 'pl' '.'

    matches =

    ' ' 'ain' ' ' ' ' 'ain' ' ' ' ' 'ain' ' ' ' ' ' ' 'ain'

    In this case, strsplit treats the two delimiters separately, so empty strings appear in output Cbetween the consecutively matched delimiters.

    展开全文
  • MATLAB函数嵌套MATLAB中M文件有两种类型,脚本M文件和函数M文件。脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句。函数文件一般是...
  • STRIM(string) 是 MATLAB 函数 DEBLANK 的扩展。 它从输入字符串中删除前导和尾随空白。 该文件在 Matlab 4.2 和 5.1 下进行了测试。
  • matlab常用函数(Matlab function)matlab常用函数(Matlab function)1. Basic mathematical functions commonly used in MATLABAbs (x) : the absolute value of the scalar or the length of the vectorAngle (z) : ...
  • MATLAB编写函数文件的实例1.在M文件编辑器中,编写“ssort”函数的代码函数代码如下:function out=ssort(a)%ssort程序代码按照升序排列数据%Define variables:%a input array to sort%ii index variable%nvals ...
  • Matlab 心形函数

    千次阅读 多人点赞 2020-07-15 09:23:34
    动图: 截图: (变化过程展示) 完整代码: function LoveFunc LoveFunchdl=@(x,a)(x.^2).^(1/3)+... set(txt2,'string',AlphaString) plot(x,LoveFunchdl(x,a),'color',Color,'LineWidth',1.2); pause(0.003) end end
  • matlab plot函数用法

    2021-04-21 16:33:34
    plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标。1. plot(x)当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐...
  • Matlab之时间函数datetime

    千次阅读 2021-01-26 11:40:57
    功能:根据当前日期创建数组,或根据日期字符串或数字进行转换 datetime函数创建一个数组,该数组使用多义ISO日历表示时间点。 datetime值具有高达纳秒精度的灵活显示格式,可以说明时区,夏令时和leap秒。 ...
  • 一 概述 其实MATLAB的GUI完全可以使用MATLAB中各种控件的函数来实现,也可以说GUI就是一个figure,本人也是对MATLAB GUI比较感兴趣的一个学习者,在学习MATLAB过程中,搜索了不少资料才了解了用函数形式也就是不依靠...
  • matlab 常用函数

    2020-12-31 06:36:20
    字符传输组或者将其他类型变量转化为字符串数组deblank 删除最后的空格double 把字符串变成ASCII 码值eval 执行串形式的MATLAB 表达式17.2 字符串查询(String tests)iscellstr 若是字符串组成的元胞数组则为真ischar...
  • Matlab字符串处理函数

    千次阅读 2020-11-13 17:15:13
    一、字符串处理函数 二、字符串规则 2.1所有字符串都用单引号(英文状态下输入)括起来; 2.2将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。 2.3size指令获得串数组的大小。串中的...
  • 基于MATLAB函数信号发生器目的函数信号发生器是基于软硬件实现的一种波形发生仪器。在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号可由函数信号发生器模拟产生,因此它在...
  • MATLAB二分法函数求根

    2021-05-08 03:58:11
    代码: string path = Server.MapPath("/Log/Log.txt"); if (File.Exists(path)) { using (StreamWr ... POJ 3122 &; 3258 &; 3273 #二分 以下三道都是经典二分,道理都差不多,代码就贴在一起了. POJ 3122 POJ 3258 ...
  • matlab train函数

    2021-04-18 09:14:33
    CheckpointFile can be set to the empty string to disable checkpoint saves (the default value), to a filename to save to the current working directory, or a file path. The optional parameter ...
  • Matlab函数的基本使用

    千次阅读 2021-04-26 11:35:35
    Part 1Matlab函数的基本概念1.MATLAB的脚本和函数都是包含MATLAB命令的.m文件。2.脚本没有参数的输入输出,函数有。3.使用函数,需要一个脚本或者函数召唤它。1. MATLAB scripts and functions are .m files ...
  • 1、menu函数:产生菜单2、用法说明m = menu('title','n1','n2',......,'nn') 函数显示以字符串变量‘title’为标题的菜单,选项为字符串变量:‘n1’,......,返回所输入的值到m3、举例说明>> m = menu('登录...
  • matlab里simple函数

    千次阅读 2021-04-30 04:12:28
    nargin: 函数的输出引数个数 ---MATLAB 中基本绘图函数有: plot: x 轴和 y 轴均为线性刻度 数刻度 semilogx: x 轴为对数刻度,y 轴为线性刻度 刻度 ---若要画出多条曲线,只需将坐标对依......matlab中S函数的实现_...
  • 在我的上一篇文章【原创】混编技巧之——找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译...
  • matlab dist函数

    千次阅读 2021-04-28 09:54:55
    dist——欧式距离加权函数(Euclidean distance weight function)语法:Z = dist(W,P)df = dist('deriv')D = dist(pos)描述:dist是一个欧式距离加权函数,给一个输入使用权值,去获得加权的输入。1、dist(W,P)中:W...
  • matlab strcat函数用法 连接字符串使用

    千次阅读 2019-09-16 12:28:59
    strcat(s1,s2,...sN) 举例,假如我要引用某个文件夹内个某个图片, 那么写代码如下 s1 = 'C:\Users\yueji\Pictures\Camera Roll\';...s2= 'IMG_0025.JPG';...记住,复制路径时后面一定加入‘\’,不然会出现下面...
  • ischar若是字符串则为真isletter串中是字母则为真isspace串中是空格则为真isstr若是字符串则为真17.3字符串操作(Stringoperations)base2decX-进制串转换为十进制整数bin2dec二进制串转换为十进制整数dec2base十进制...
  • string=array2string(array) 将元胞数组转换为可计算的字符串,例如 eval(...) 使用的字符串。 单元格可能包含字符串、矩阵、函数句柄和包含上述类和其他单元格的单元格。
  • matlab中的get函数怎么用?

    千次阅读 2021-04-18 03:23:56
    get函数常见的有三种重载:int get();istream &get(char &p);istream &get(char &p,int n,char delim='\n');cin.get(name 16); 和cin.get();两行代码是第三种和第一种。第一行(第三种)是以打入回车...
  • matlab sprintf函数的用法

    千次阅读 2020-05-25 22:36:38
    %数值的格式化输出 ...str1=sprintf(string('pi = %.5f'),pi); %输出类型为string team1='Manchester United'; team2='Chelsea'; str2=sprintf('%s won %s,congratulations',team1,team2); 输出 >>
  • matlab函数_连通区域1、 matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。算法:(1)Determine the connected components.L ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,470
精华内容 6,588
关键字:

matlab的string函数

matlab 订阅