matlab如何在文中定义函数

您所在的位置:网站首页 matlab开头function matlab如何在文中定义函数

matlab如何在文中定义函数

2024-07-14 14:18| 来源: 网络整理| 查看: 265

matlab如何在文中定义函数

通常我们多是将函数单独在编写在单个的m文件中,再于主程序中调用。但是,有时候觉得程序太小,直接在程序末尾编写函数,又会收到“此上下文中不允许函数定义”的错误提示。那么,matlab如何在文中定义函数呢?

为了搞清这个问题,我们先来了解一下matlab编译运行代码的几种方式。

在脚本编辑器中编写,全选后右键执行所选内容。使用这种方式编译运行,无非就是将选中的代码一行一行放到命令行中运行,这种方式,便于程序的调试,也是我常用的方式。在编辑器中编写完成后,摁F5键保存运行。这种运行方式,其实上相当于在命令行窗口中输入文件名运行,所以要先保存。这种方式适用于不带输入参数的程序以及运行。将文件拖入命令行,也能达到相同的效果。

直接在命令行窗口输入文件名(不是函数的文件,或传入参数没有用到或者函数体内定义了的函数)或函数名(最好与文件同名)及其传入参数运行。这种运行方式的机理同上一个。

后两种运行方式最大的优点就是可在单文件中定义供自身调用的函数,而无需另外编写m文件保存。最大的缺点是不利于单行的调试。

知道了程序的几个简单的运行方式后,我们来简单了解一下matlab程序运行机制。

对于逐行解析运行的方式,毋庸多说,当在文中碰到function定义的函数时,会告诉你“此上下文中不允许函数定义”。这时候,你需要将一个一个函数单独写成m文件。对于命令行调用文件的运行方式,matlab会将文件进行识别成两类文件,非函数文件和函数文件。当文件开头就开始定义函数时,matlab将此文件识别为函数,那么文中的第一个函数将被视为该文件对应的函数(主体函数,优先运行),而文中定义的其他函数,此时视为可在文中互相调用的附属函数。这个“函数调用文中函数”机制允许我们在文中定义函数。当文件开头不是以“function”定义的函数时,文件被识别做非函数,则逐行解析运行,若下文有函数定义,则报错。

简而言之,只有在定义函数文件时,才能在本文中调用其他文件,而不需另外的m文件来定义函数。

如下,我们一般将函数文件名和函数名统一,以下文件保存为test,可运行,实现了在文中定义函数:

function m=test() m=3*add(1,9); end function z=add(x,y) z=x+y; end

值得一提的是,选中逐行运行的方式除了有便于调试的优点,还避开的调用法运行时文件一定要英文名的缺点,并且运行时不需要先保存文件,十分方便。习惯性这样操作,平时编写程序还是多拆几个m函数文件,最后为了美观整合的时候,可以利用函数可调用函数的机制,整合成一个文件。但常用到的函数,最好能单独出来,因为函数文件中的附属函数,只能在该函数文件中调用。

《》《》《》《》《》《》《》《》《》《》《》《》《》

结构就是一个主程序文件,若干供调用函数文件,函数文件中可附属函数,供自身调用。把主程序文件改成无参函数,便可将其他函数合并进来放在末尾,多个文件就变成了一个文件。注意主程序改造成的主函数对应的函数名要和主文件名一致。但是改之后单行选中右键运行调试就很不方便了。用matlab自带的断点调试还是可以的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3