个人matlab笔记(四)

3月19日
函数文件于参数传递
使程序模块化,每个函数完成特定功能

主函数与子函数
保存时所用的函数名与主函数定义名相同
第一个出现的叫主函数
其他函数成为子函数

子函数性质
第一行是其申明行
子函数次序可以任意改变
只能被处于同一个文件中的主函数或其他函数调用
例:
%子函数调用
function Exsinplot( )   %没有输入输出参数,相当于脚本文件
% Exsinplot 使用子函数调用绘制正弦曲线
omega = 1; Exsin(omega); %调用Exsin
hold on;
omega = 2; Exsin(omega); %调用Exsin
omega = 3; Exsin(omega); %调用Exsin

function y=Exsin(x)   %子函数y=sin(?t)
t=0:pi/50:pi;
y=sin(x*t);
plot(t,y);

matlab函数调用过程实际上是参数的传递
函数传递的一定是数值
被调用的参数会存在独立的工作空间中,调用结束时会被清除,输入参数就消失了
变量种类(和c一样)
局部变量,作用范围仅在定义的函数内部,结束时会被清除
全局变量:减少参数传递过程,提高程序执行效率;要小心被函数修改
静态变量 persistent x声明后须初始化,用isempty判断是否赋值

声明全局变量 global   可以用clear global (变量名)

嵌套函数
每个函数必须用end结束
调用原则:
(1)
外层函数可以调用内一层函数,但不能隔层调用;
(2)
同层嵌套函数可以互相调用
(3)
内层函数可以调用外一层函数及和外层函数同层的其他函数。

2)
私有函数
私有函数是限制访问权限的函数,私有函数存放在“private”子目录中,只能被其直接父目录的M函数文件所调用。
3)
重载函数
重载函数是指两个函数使用相同的名称,处理的功能相似,但参数类型或个数不同,重载函数通常放在不同的文件夹下,文件夹名称以“@”开头后面跟一个数据类型名。

函数的工作过程和P码文件
当在matlab输入标识符(感觉就是函数名)首先确认是不是变量名,若不是,则做如下搜索:
是否是子函数、是否是“private”目录下的私有函数、是否在当前路径、是否在搜索路径

P码,伪代码,保密性好,生成后可直接调用。。。。。。。
函数的工作空间。。。。。。。。。。

程序的调试(只记录有用的了):
1、直接调试法
调试函数m文件时可以改成脚本m文件进行调试
在适当的地方插入keyboard
2、工具调试法(Debugger)
分为命令行(麻烦)和图形界面的方式

计时函数
tic toc tic计入插入时间,toc代表过去的时间,可以有多个toc,以最后一个tic为准
cputime t1=cputime  t2=cputime-t1
clock 会输出当前时间 以矩阵形式[年,月,日,时,分,秒]
etime()   t=clock   t1=etime(clock,t)

在编写程序时优先考虑matlab的内在函数
内在函数使用c或Fortain编写,执行速度快
要采取更高效的算法,如quad()和quad8(),后一种速度、精度明显高于前一种 %保留了quad()老函数

小技巧
对于M文件的命名,尽量不要用简单的英文单词,加上下划线
Tab补全函数名或文件名

m=max(x(:)) %直接取最大值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值