1 Matlab的函数编写需要注意的是.m的文件名需要与内部的函数名保持一致,否则会报出未定义函数或变量的错误

2 全局变量声明一般放在函数之前

global var1 var2 ....

3 随机数产生

rand 产生一个随机数
        rand(n) 产生一个 n×n 的随机数数组
        rand(n, m) 产生一个 n×m 的随机数数组

rand 用于产生等可能的随机数
        randn 用于产生普通的随机数

4 持久变量定义,持久内存(persistent memory)是内存的一种类型,在函数上一次调用之后,这一步调用之前,本地变量被保存在持久内存,值不变,如计算函数被调用的次数会用到

persistent var1 var2 var3 ...

5 函数的函数

(1)fzero:用于找到传递给它的函数值为 0 时的自变量

>> fzero('cos',[0 pi])
ans = 1.5708 

(2)eval: eval(string),对一个字符串进行求值,就如它在命令窗口中已经键入了一样

>>string='sin(pi/4)'
>>x = eval(string)
x = 0.7071 

(3)feval:用一个特定的输入值对命名的函数进行求值

>> x = feval('sin',pi/4)
x = 0.7071 

6 子函数或中间函数

在一个单个的文件中我们可以创建多个函数。如果超过 1 个的函数出现在一个文件中,那么最上面的那个函数为普通函数,下面的函数称为子函数或中间函数。子函数看起来和普通函数一样,但是只能被同一文件中的函数调用。

私有函数:在目录中新建一个private的子目录,里面存放个人的私有函数。

在一个 M 文件中,调用一个函数,MATLAB 先检查看他是否是一个子函数。如果它不
是那就检查它是不是一个私有函数。如果也不是私有函数,MATLAB 就会检它在不在标搜
索路径中

7 信息提示

error: 显示错误信息,并中止函数以免它产生这个错误。如果参数错误是致命的,这
个函数将会被调用。
warning: 显示警告信息并继续执行函数,如果参数错误不是致命的,执行还能继续,则
这个将会被调用。

nargin:这个函数返回调用这个函数时所需要的实际输入参数的个数
nargout: 这个函数返回调用这个函数时所需要的实际输出参数的个数
nargchk: 如要一个函数调用被调用时参数过多或过少,那么 nargchk 函数将返回一个标
准错误信息

inputname: 这个函数将会返回对于特定参数个数的实际变量名。

1 笛卡尔坐标系转换成极坐标

函数编写:

rect2polar.m:笛卡尔坐标系转换成极坐标

%%
%笛卡尔坐标系转换成极坐标
% Define variables:
% r --Length of polar vector
% theta --Angle of vector in degrees
% x --x-position of point
% y --y-position of point  function [r,theta]=rect2polar(x,y)%检查输入参数的个数是否合法,1和2个参数是允许的msg = nargchk(1,2,nargin); error(msg); %如果y没有给出输入,则设定为0if nargin < 2 y = 0; end%如果输入参数均为0,提示无意义的计算if x==0 & y==0msg='两个参数均为0,计算结果无意义';warning(msg);end   r=sqrt(x.^2+y^2);%如果有两个参数则返回角度,否则只返回摸%函数中检查 nargout 的原因是为了防止无用的工作,避免浪费算力if nargout==2theta=180/pi*atan2(y,x);end
end

调用:

在命令行窗口输入:

>> [r, theta]=rect2polar(4,3)r =5theta =36.8699>> [r, theta]=rect2polar(4)r =4theta =0>> [r, theta]=rect2polar(0)
警告: 两个参数均为0,计算结果无意义
> In rect2polar (line 19) r =0theta =0>> [r, theta]=rect2polar()
错误使用 rect2polar (line 12)
输入参数的数目不足。>> [r, theta]=rect2polar(4,3,1)
错误使用 rect2polar
输入参数太多。

2 极坐标转换成笛卡尔坐标系

函数编写:

%%
%极坐标转换成笛卡尔坐标系
% Define variables:
% r --Length of polar vector
% theta --Angle of vector in degrees
% x --x-position of point
% y --y-position of point
function [x,y]=polar2rect(r,theta)x=r*cos(theta*pi/180);y=r*sin(theta*pi/180);
end

 调用:

在命令行窗口输入:

>> [x, y]= polar2rect(5,36.8699) x =4.0000y =3.0000

Matlab-函数编写规则相关推荐

  1. matlab输入数据作方程,用MATLAB函数编写并求解微分方程

    实验八:用MATLAB 函数编写并求解微分方程 一.实验原理 为了对连续系统进行方针,首先需要建立其数学模型,然后利用计算机求这些数学模型,从而得出数学模型的数值解.由于连续系统是通过微分方程老建模的 ...

  2. matlab利用函数 编程求,MATLAB 函数编写方法与应用

    试探结构: MATLAB 从 5.2 版本开始提供了一种新的试探式语句结构,其一般的形式为: try 语句段1 catch 语句段2 end 本语句结构首先试探性地执行语句段 1,如果在此段语句执行过 ...

  3. MATLAB --函数编写与调用

    本文来源于网络,作者Yasist,如有侵权请联系小编微信:leeing137 之前写code都是将所有的实现放在同一个.m文件,导致程序很混乱冗长,过了几天容易忘记,不便于后期修改维护,于是开始学习将 ...

  4. 【 MATLAB 】序列的奇偶分解的 MATLAB 函数编写实践

    序列 x(n)的奇偶分解的公式为: 编写一个序列 x(n) 的奇偶分解式 xe(n) 和 xo(n),需要考虑的问题是序列长度,下标的变化. 这里必须做个声明,下面的程序中用到了前几篇博客中的几个函数 ...

  5. matlab函数编写实例,Matlab代写代做常见函数调用实例

    对于已经接触过matlab编程软件的留学生们来说,它能够帮助我们实现在算法开发.数据分析以及交互环境等多方面的效果,在matlab当中我们能够将不同的语句调用到一起来执行,这也是我们所说的函数,那么在 ...

  6. matlab实验函数编写与程序设计,matlab实验四函数编写与程序设计.doc

    实验四:函数编写与程序设计 一.实验目的1 . 掌握M文件的创建. 2.掌握函数的编写规则. 3.掌握函数的调用. 4 . 掌握基本的输入输出函数以及显示函数的用法. 5.会用Matlab程序设计实现 ...

  7. matlab实验函数编写与程序设计,matlab实验四函数编写与程序设计

    <matlab实验四函数编写与程序设计>由会员分享,可在线阅读,更多相关<matlab实验四函数编写与程序设计(8页珍藏版)>请在金锄头文库上搜索. 1.实验四:函数编写与程序 ...

  8. 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现

    转自:Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matl ...

  9. matlab中ode指令,matlab中ode5函数编写.doc

    matlab中ode5函数编写 function varargout = ode45(ode,tspan,y0,options,varargin) %ODE45 Solve non-stiff dif ...

  10. matlab实验函数编写与程序设计,实验二MATLAB程序设计.doc

    实验二 MATLAB程序设计 实验目的 1.掌握利用if语句实现选择结构的方法. 2.掌握利用switch语句实现多分支选择结构的方法. 3.掌握利用for语句实现循环结构的方法. 4.掌握利用whi ...

最新文章

  1. Deep Learning-论文翻译以及笔记
  2. Undefined exploded archive location Tomcat之项目不能发布
  3. northstar机器人编程_《机器人构建实战》——导读
  4. ue4材质节点大全_转载于知乎:UE4 多象限(UDIM)贴图在UE4中的应用
  5. CentOS7.1 KVM虚拟化之经常使用管理虚拟机命令(3)
  6. react笔记组件属性传递机制(四)
  7. python库测试记录(sys、time、datetime、random、hashlib)
  8. 横琴今年建物联网基础设施
  9. android tab之间滑动切换界面功能
  10. (1)非对称加密——RSA——史上最通俗的小白可看懂!
  11. 埃及金字塔之谜最完美的解释
  12. Multisim: Inverting Amplifier Simulation
  13. 利用数据质量规则库推动数据质量管理
  14. 数字图像处理——图像边缘检测
  15. 关于python中矩阵相乘需要注意的事情
  16. 2019全球IT行业薪酬报告:平均年薪超70万!最高薪职位竟是...
  17. LC - P03 机器人大冒险
  18. [异能程序员]第六章 遛狗(第二更)
  19. 如何做好软文推广?软文推广有哪些宣传平台值得推荐
  20. 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)

热门文章

  1. Solidity最强对手:MOVE语言及新公链崛起
  2. 搜狐2010校园招聘第一站北邮笔试题(转) 以及 本人做的部分答案
  3. 聆听(Monitor)系列驱动下载方法
  4. arguments.callee和caller的区别
  5. CA是如何颁发证书的
  6. java 读取 hadoop 的文件 demo
  7. HTML 编码(字符集)总结,你了解了多少
  8. 测试平台——项目工程创建和配置
  9. 小程序反编译 代码报错_typeof3 is not a function
  10. mysql——int(size) 中的size表示什么意思