matlab 自定义函数及调用
2015-10-09 15:39
459 查看
这一篇博客主要学习了:
第一,自定义函数优点有很多,比如可重复利用;容易纠错,以后直接装入大工程里(更重要的是,实参是复制给形参的,在自定义函数中运行时形参独立显示,这一点和C不一样)。
第二,通过help/lookfor 自定义函数名 快速查找到自己所写的函数(H1注释行功能)
第三,调试功能
自定义函数代码:
调用代码:
运行效果就不说了,正确。重要的是思想!
--------------------------------------------------------------------------------
第二,通过help查找
通过lookfor查找:
第三,断点测试:
为了仔细观察工作区在函数执行前后的变化, 我们将在MATLAB调试器中加载函数dist2
和脚本文件 test_dist2。在函数加载前,加载中,加载后设置断点(如图 5.1 所示) 。
当程序中止在函数调用之前的断点,它的工作区如图 5.2(a)所示。注意工作区中只有变
量 ax,ay,bx 和 by。当程序中止在函数调用过程中的断点,它的工作区如图 5.2(b)所示。
注意工作区中只有变量 x1,x2,y1,y2 和 distance。当程序中止在函数调用后的断点,它的
工作区如图 5.2(c)所示。 注意工作区中原来的变量又重复出现, 再加上函数返回的变量 result。
函数加载前:
加载中:
加载后:
所以,这个互相独立的调试确实很好!学习了
第一,自定义函数优点有很多,比如可重复利用;容易纠错,以后直接装入大工程里(更重要的是,实参是复制给形参的,在自定义函数中运行时形参独立显示,这一点和C不一样)。
第二,通过help/lookfor 自定义函数名 快速查找到自己所写的函数(H1注释行功能)
第三,调试功能
自定义函数代码:
function distance = dist(x1, y1, x2, y2) %写在首行 %自定义函数 %脚本文件:dist.m %函数功能: % 该函数用来计算笛卡尔坐标系中两点之间的距离,两个点的坐标通过形参输入(4) % 学习H1注释行的使用,及函数的调用 %DIST函数:计算计算笛卡尔坐标系中两点之间的距离 % %应用示例: % res =dist(x1, y1, x2, y2) % % 定义变量: % x1 ---位置1的x坐标 % y2 ---位置2的y坐标 % x1 ---位置1的x坐标 % y2 ---位置2的y坐标 % % 版本记录: % 日期 负责人 版本描述 % 2015-10-9 10 王茂春 源代码 % 计算距离 distance = sqrt((x2-x1).^2 + (y2-y1).^2);
调用代码:
% 脚本文件: test_dist.m % % 目标: 实际调用自定义函数dist % 定义变量: % a1 ---位置a的x坐标 % b2 ---位置b的y坐标 % a1 ---位置a的x坐标 % b2 ---位置b的y坐标 % % 版本记录: % 日期 负责人 版本描述 % 2015-10-9 10 王茂春 源代码 %获取输入数据 disp('计算笛卡尔坐标系中两点之间的距离'); ax =input ('输入位置a的x坐标: '); ay =input ('输入位置a的y坐标: '); bx =input ('输入位置b的x坐标: '); by =input ('输入位置b的y坐标: '); %调用函数 result =dist(ax, ay, bx, by); %输出结果 fprintf('笛卡尔坐标系中两点之间的距离是:%f\n',result);
运行效果就不说了,正确。重要的是思想!
--------------------------------------------------------------------------------
第二,通过help查找
通过lookfor查找:
第三,断点测试:
为了仔细观察工作区在函数执行前后的变化, 我们将在MATLAB调试器中加载函数dist2
和脚本文件 test_dist2。在函数加载前,加载中,加载后设置断点(如图 5.1 所示) 。
当程序中止在函数调用之前的断点,它的工作区如图 5.2(a)所示。注意工作区中只有变
量 ax,ay,bx 和 by。当程序中止在函数调用过程中的断点,它的工作区如图 5.2(b)所示。
注意工作区中只有变量 x1,x2,y1,y2 和 distance。当程序中止在函数调用后的断点,它的
工作区如图 5.2(c)所示。 注意工作区中原来的变量又重复出现, 再加上函数返回的变量 result。
函数加载前:
加载中:
加载后:
所以,这个互相独立的调试确实很好!学习了
相关文章推荐
- Matlab快速入门
- matlab中的strcmp函数
- 多项式插值
- matlab的reshape和opencv的reshape异同
- matlab中的numel函数
- MATLAB中如何输出漂亮的公式
- pymatlab之3D条状图
- 二维面阵FFT波束形成matlab
- 关注的Matlab Toolbox列表(超全)
- matlab全局变量(global):够被其他函数调用.在这两个函数中都要用global修饰这个变量.
- matlab求解-a(发展系数)的方法。
- matlab_BP
- python,matlab等字符串处理
- Matlab 的fspecial函数用法
- 目标检测光流法(四):matlab下光流法工具箱
- matlab里.p文件的一些说明
- matlab计时函数
- Matlab取整函数(fix, floor, ceil, round)的使用
- matlab 逻辑数组及其应用
- matlab 嵌套循环的学习