matlab 子函数的使用
本文参考了该篇博客:http://www.cnblogs.com/MarshallL/p/4048846.html
对其进行学习,为我所用吧。
一、
在matlab的函数定义中,如果函数如果函数较长或较多,往往可以将各函数分别写在多个.m文件中,但有时函数可能很短,就几行,可能希望将多个函数定义放在同一个.m文件中,这里就存在一个子函数的定义问题。
对于函数文件,一个M文件只能定义一个主函数,即第一句function所定义的函数,而且整个M文件在外部使用时候表现出来的也只有这一个函数(主函数名和函数M文件名保持一致)。
在matlab中一个.m文件中可以有多个的子函数,可以互相调用,下面结合一个简单的例子来分析。
格式:
function MainFunction
%主函数内容
function SubFunction1
%子函数内容
end
function SubFunction2
%子函数内容
end
function SubFunction3
%子函数内容
end
end
自定义函数:mathTest.m
function [sum_result,sub_result,mul_result] = mathTest(x,y) %主函数
sum_result=sum(x,y); %子函数的调用
sub_result=sub(x,y);
mul_result=mul(x,y); %子函数定义:
function result=sum(x,y) %+
result = x+y; function result=sub(x,y) %-
result = x-y; function result=mul(x,y) %*
result = x*y;
调用该函数M文件:
%本函数测试M文件主函数调用(子函数被隐藏)
clc;clear;
a=;b=; [sum_result,sub_result,mul_result] = mathTest(a,b); %主函数调用
fprintf('%d + %d的和是:%f\n',a,b,sum_result);
fprintf('%d - %d的差是:%f\n',a,b,sub_result);
fprintf('%d * %d的积是:%f\n',a,b,mul_result);
第二、看那篇博客发现一个有用的功能,实际是可以将以上文件:自定义函数文件和调用文件合在一起的(虽然不推荐)
这里我们定义了一个没有输入没有输出的函数该函数将作为主函数,而其他的函数均为子函数,由主函数调用子函数,而子函数间是可以互相调用,但不能调用主函数。这时的m文件不需要任何输入,调用时可以直接点运行m文件的快捷键,或者在命令框中输入m文件名然后回车运行
举例 脚本文件:mathMain.m
%本函数测试M文件主函数调用(子函数被隐藏)
function [] =mathMain() %不能省略
clc;clear;
a=;b=;
[sum_result,sub_result,mul_result] = mathTest(a,b); %主函数调用
fprintf('%d + %d的和是:%f\n',a,b,sum_result);
fprintf('%d - %d的差是:%f\n',a,b,sub_result);
fprintf('%d * %d的积是:%f\n',a,b,mul_result);
%结束
%----------------------------------------------------------------
function [sum_result,sub_result,mul_result] = mathTest(x,y) %主函数
sum_result=sum(x,y); %子函数的调用
sub_result=sub(x,y);
mul_result=mul(x,y); %子函数定义:
function result=sum(x,y) %+
result = x+y; function result=sub(x,y) %-
result = x-y; function result=mul(x,y) %*
result = x*y;
其实,上面这个代码中,
mathTest(),
sum(x,y)
sub(x,y)
mul(x,y)都可以看作子函数,只不过mathTest对其它函数进行了调用,那么也就是所谓的嵌套功能
matlab 子函数的使用的更多相关文章
- matlab中同一文件定义子函数的方法
在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况 ...
- matlab调试时子函数断点不起作用
matlab调试代码时总是遇到这样一个奇怪的问题,就是当我在主程序(.m脚本)中调用子函数并在子函数中设置断点,然后开始调试运行主程序... 发现主程序直接运行到结束而并没有在调用子函数的时候在所设置 ...
- Matlab匿名函数,子函数,私有函数,重载函数,eval和feval函数
匿名函数,子函数,私有函数等函数类型 匿名函数: 匿名函数没有函数名,也不是.m文件,只包含一个表达式和输入输出参数. Fxy=@(x,y)x.^y+3*x*y x,y为输入输入参数,Fxy为函数名 ...
- 【MATLAB】画信号频谱的子函数
输入信号序列和采样率,该子函数可以画出该信号的频谱图. function [f,spec,NFFT]=spec_fft_plot(sample,L,Fs) % 输入数据说明: % sample:信号序 ...
- Matlab中函数定义方法
Matlab自定义函数的六种方法 n1.函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件: n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件 ...
- MATLAB—M函数文件
文章目录 一.M文件 1.脚本文件和函数文件的区别 二.M函数文件 1.创建方法 2.文件形式 2.函数形参及注释 3.函数的调用 4.函数变量 5.主函数.子函数 三.函数句柄 一.M文件 首先,要 ...
- MyEclipse调用Matlab打包函数
本文部分内容参考了http://www.360doc.com/content/15/1103/16/1180274_510463048.shtml 一.检查Java环境 对于已经装上JAVA环境的计算 ...
- Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数
if语法 : if [ expression ] then commandselif [ expression2 ] then commandselse commandsfi ...
- Matlab图像处理函数:regionprops
本篇文章为转载,仅为方便学术讨论所用,不用于商业用途.由于时间较久,原作者以及原始链接暂时无法找到,如有侵权以及其他任何事宜欢迎跟我联系,如有侵扰,在此提前表示歉意.----------------- ...
随机推荐
- HTML学习(八)列表和块
无序列表无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记.无序列表始于 <ul> 标签.每个列表项始于 <li>.<ul type=“”> ...
- 2、手把手教你Extjs5(二)项目中文件的加载过程
上一节中用sencha工具自动创建了一个项目,并且可以在浏览器中查看.现在我们来看看js类加载过程.如下图所示: 1、首先:浏览器中输入 localhost:1841 ,调用 index.html; ...
- select取值问题
全栈攻城狮们给挖了各种坑..其中一个典型是select控件取值.直接上代码: <!DOCTYPE html> <html lang="en"> <he ...
- u-boot-2016.07 README文档结构
Author:AP0904225版权声明:本文为博主原创文章,转载请标明出处. 阅读u-boot的README文档,可以获取很多有用的信息,例如从哪里可以获得帮助,帮助:u-boot版本命名规则,目录 ...
- highcharts设置Y轴范围及根据Y轴范围设置不同颜色
yAxis : { title : { text : '数据' }, plotLines : [ { value : 0, width : 1, color : '#808080' } ], min: ...
- Python3基础 使用for循环 删除一个列表中的重复项
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- django的HTTPREQUEST对象
Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个Ht ...
- iOS 更改启动视图
TMMainViewCtrl *main = [[TMMainViewCtrl alloc] init]; self.window.rootViewController = main;
- 第一个shell脚本 结合计划任务下载远程文件
思路: 进入/usr/local/apache2/htdocs/ipa/ 循环读取 /root/shell/wget/down.txt 每次一行,每一行直接就是一条命令,直接 $line 就可以执 ...
- C++第三天学习
回顾: 类和对象 class 类名 { public: private: 在类的类部可以访问,在类的外部不能直接访问. protected: 在类的类部可以访问,在类的外部不能直接访问,其子类可以访问 ...