我是靠谱客的博主 温暖鸭子,最近开发中收集的这篇文章主要介绍Matlab-函数编写规则1 笛卡尔坐标系转换成极坐标2 极坐标转换成笛卡尔坐标系,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 极坐标转换成笛卡尔坐标系所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部