概述
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没有给出输入,则设定为0
if nargin < 2
y = 0;
end
%如果输入参数均为0,提示无意义的计算
if x==0 & y==0
msg='两个参数均为0,计算结果无意义';
warning(msg);
end
r=sqrt(x.^2+y^2);
%如果有两个参数则返回角度,否则只返回摸
%函数中检查 nargout 的原因是为了防止无用的工作,避免浪费算力
if nargout==2
theta=180/pi*atan2(y,x);
end
end
调用:
在命令行窗口输入:
>> [r, theta]=rect2polar(4,3)
r =
5
theta =
36.8699
>> [r, theta]=rect2polar(4)
r =
4
theta =
0
>> [r, theta]=rect2polar(0)
警告: 两个参数均为0,计算结果无意义
> In rect2polar (line 19)
r =
0
theta =
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.0000
y =
3.0000
最后
以上就是温暖鸭子为你收集整理的Matlab-函数编写规则1 笛卡尔坐标系转换成极坐标2 极坐标转换成笛卡尔坐标系的全部内容,希望文章能够帮你解决Matlab-函数编写规则1 笛卡尔坐标系转换成极坐标2 极坐标转换成笛卡尔坐标系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复