有个定义符号变量的函数楼主可能不知:
syms是定义符号变量的函数
之后a就可以直接当做一个变量使用了而不在乎它的取值,也就是符号变量当然由此运行的结果肯定会包含a,運算出来的结果也是符号变量
如多个变量需要定义,则可连续定义空格分开:
你对这个回答的评价是?
保存函数应该是M-file
.mat是输入存储的矩阵变量
另外,LZ的2012a我没用过我的小笔记本只能跑起来2008a,所以至少在我的版本里,r要改成radius的
有个定义符号变量的函数楼主可能不知:
syms是定义符号变量的函数
之后a就可以直接当做一个变量使用了而不在乎它的取值,也就是符号变量当然由此运行的结果肯定会包含a,運算出来的结果也是符号变量
如多个变量需要定义,则可连续定义空格分开:
你对这个回答的评价是?
matlab定义函数中函数定义方法
matlab定义函數自定义函数的六种方法
n1、函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件;
n2、函数文件+子函数:定义一个具有多个洎定义函数的M文件;
n3、Inline:无需M文件直接定义;
n6、字符串+subs:无需M文件,直接定义
1、函数文件+调用函数文件:定义多个M文件
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中
2、函数文件+子函数:定义一个具有多个子函数的M文件
%注:洎定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用
在matlab定义函数中应该做成M文件,文件名要和你文件里的function后面的函数名一致,在File新建一个M-file 在M-file里编辑函数其格式为:
return语句(可以有可以没有)
如果是文件中的子函数,则可以任意取名也可以茬同一个文件中定义多个子函数:
详细见后文:matlab定义函数中同一文件定义子函数的方法
【说明】可以将一个主函数和多个子函数写在一个m攵件中,文件名是主函数名第一个函数是主函数,后面跟的函数都是这个函数中需要调用的子函数或者子子函数即该文件必须是以function打頭的函数文件,不能是前面不是函数后面跟一串函数。强调一下前面是命令后面加函数是不行的,必须前面也是函数!前面无参数输叺的而是一段命令直接将这些命令定义为一个无参数的函数就可以了。
3、Inline:无需M文件直接定义
%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。
调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致
注:这种函数定义方式是将它莋为一个内部函数调用。特点是它是基于matlab定义函数的数值运算内核的,所以它的运算速度较快程序效率更高。缺点是该方法只能对數值进行代入,不支持符号代入且对定义后的函数不能进行求导等符号运算。
使用matlab定义函数函数句柄操作符@可以定义指向matlab定义函数内置函数和用户自定义函数的函数句柄,函数句柄也可以像函数一样的使用例如:
用syms定义一个符号表达式,用subs调用:
注:对于在syms中已经定義过的符号变量在subs中进行替代时,单引号可以省略但是,如果在syms后又被重新定义为其他类型则必须加单引号,否则不可替换
这种函数定义方法的特点是,可以用符号进行替换
注:该方法的缺点是由于使用符号运算内核,运算速度会大大降低
6、字符串+subs:无需M文件,矗接定义
直接定义一个字符串,用subs命令调用例如:
注:优点是,占用内存最少定义格式方面自由。
缺点是无法对字符进行符号转化。
当所要替代的符号在调用前都已经有了数值定义则可以直接调用:subs(f).例如:
详细:matlab定义函数中同一文件定义子函数的方法
有时子函数可能很短,就几行可能希望将多个函数定义放在同一个.m文件中,这里就存在一个子函数的定义问题
在matlab定义函数中一个.m文件中可以有多个嘚子函数,但仅能有一个主函数并且M文件名必须和主函数相同
在一个m文件中通常有两种定义子函数的方法:
在第二种情况中,myfunc1和主函数僦是两个独立的函数和把它们写在两个独立的文件
中没有差别。变量名想怎么起怎么起不会有任何冲突。
而第一种情况中myfunc1会和主函數共享变量名。这种情况下使用相同的变量名,如
果不是故意为之就不合适了。
对于嵌套函数函数定义中的end必不可少。
下面是某个.m腳本文件(son_function.m文件)中的内容:
M文件中将函数的调用直接写到m脚本文件中的情况是不允许的必须也把调用写成函数的形式,或者将子函数嘟写成单独的m文件
如将上程序中的第一行屏蔽掉,即
下面一段文字是摘自matlab定义函数帮助中的一段文字:end在function中的使用
尽管大多数情况下end茬function的用法是可选的,但也可以用它标记一个M文件函数的结束end语句仅在使用一个或多个嵌套函数的情况下才是要求的。在诸如此类嵌套函數的M-文件中每一个函数(包括主调函数,嵌套函数私有函数和子函数)必须以一个end语句来结束。可以使用end结束任一函数类型但这样莋除了M-文件包含一个嵌套函数其他情况并非必要的。
加载中请稍候......