Matlab提供了强大的函数库供用户调用,但也支持用户自定义函数。本文使用了范德堡大学教授Akos Ledeczi授课中的样例来一步步说明怎样在Matlab中自定义函数。

首先,在command window中输入edit命令。開始编辑函数。本函数实现的是随机生成一个3行4列的矩阵。该矩阵的元素取值范围在0-1之间。

function myRand
a = rand(3,4)
end

当中,function和end是keyword,function表示该文件是一个函数,end表示函数体的结束。在command window中运行myRand命令,得到的结果例如以下:

>> myRand
a =
0.5688 0.3371 0.3112 0.6020
0.4694 0.1622 0.5285 0.2630
0.0119 0.7943 0.1656 0.6541

然后,为函数添加參数。

本函数实现的是随机生成一个3行4列的矩阵,该矩阵的元素取值范围在low-high之间。

function a = myRand(low, high)
a = low+rand(3,4)*(high - low);
end

当中。low和high是函数体的两个输入參数。分别代表了矩阵元素取值范围的上限和下限;a是函数的范围值。在command window中运行myRand命令。得到的结果例如以下:

>> myRand(1,6)
ans =
4.4461 1.4191 1.7619 5.9807
4.7408 2.1449 5.1291 1.3909
3.2527 5.5667 3.6917 3.2134

最后,为函数再添加一个返回參数。该函数将随机生成的矩阵中的每个元素相加。返回其总和。

function [a, s] = myRand(low, high)
a = low + rand(3,4)*(high-low);
v = a(:);
s = sum(v);
end

当中。s是新添加的返回參数。在command window中运行myRand命令,得到的结果例如以下:

>> [x ss] = myRand(2,4)
x =
3.1504 2.7063 2.0860 3.4634
2.1196 3.6424 2.3380 3.2955
2.4696 2.0308 3.2982 2.9018
ss =
33.5021

到此为止。在Matlab中简单自己定义函数的方法已经介绍完成。Matlab还支持常见的for-loop和if-else等循环和推断结构。參见兴许博客。


Matlab自己定义函数的更多相关文章

  1. MATLAB如何定义函数

    自定义函数的途径:M文件函数(M file function)在线函数(Inline Function)匿名函数(Anonymous Function)1.M文件函数范例function c=myad ...

  2. matlab学习创建变量定义函数

    定义变量a,b,c,计算输出d >> a=-3;b=2;c=5;>> d=(a^2+b)/c;>> d=(a^2+b)/c d = 2.2000 系统默认变量  a ...

  3. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  4. matlab 中“newff” 函数的参数设置

    matlab 中"newff" 函数的使用方法技巧|和各参数的意义 先来一个简单的源程序让大家练习一下: % Here input P and targets T define a ...

  5. Matlab学习记录(函数)

    Matlab中的内建函数 Matlab自定义函数 用function构造函数 用inline构造函数 用syms构造符号函数 多项式相关函数 polyvalx convx 向量和矩阵运算函数 向量运算 ...

  6. Matlab中的函数句柄@

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50699990 @是Matlab中的句柄 ...

  7. Matlab中imfilter()函数的用法

    Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...

  8. MATLAB 中自定义函数的使用

    MATLAB在文件内部(在函数内部)定义函数,但文件名以开头函数来命名,与Java中每个文件只能有一个公开类,但在文件内部还是可以定义其他非公开类一个道理. 无参函数 do.m function do ...

  9. matlab中nargin函数输入参数数目

    来源:https://ww2.mathworks.cn/help/matlab/ref/nargin.html?searchHighlight=nargin&s_tid=doc_srchtit ...

随机推荐

  1. IOS MVC

    简单的理解: V对M是不能通讯的. C对M通讯:API M对C通讯:Notification,KVO C对V通讯:Outlet V对C通讯:Target-action, Delegate,Dataso ...

  2. HBase的基本操作

    1.输入hbase shell进入HBase shell

  3. Oracle基础学习5-- Oracle权限之”角色”

    不论什么与权限相关的东西都少不了"角色"的概念,Java如此,.Net如此,Oracle当然也不例外. 角色事实上就是权限的集合,将多个权限打包到一个角色中,这样每一个角色有特定的 ...

  4. lua实现多继承

    http://my.oschina.net/u/156466/blog/401576local class1 = {} function class1:new() local obj = {} set ...

  5. jQuery中两种阻止事件冒泡的区别

    方式一:event.stopPropagation(); 方式二:return false; 但是这两种方式是有区别的.return false 不仅阻止了事件往上冒泡,而且阻止了事件本身.event ...

  6. 天坑 之 java web servlet+jsp项目 配置后 404 (MyEclipse转eclipse)

    最近搞一个自己的博客系统玩,用了servlet+jsp,结果发现了两个大问题: 1.无法 Export 出 WAR文件: 2.生成WAR,放置到TOMCAT的 webapps目录后,http://lo ...

  7. Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

    本文为转载内容,感谢原作者.原文出自:http://zhaoxiaoru39.blog.163.com/blog/static/609552192012511104730115/ 我遇到的问题是:在n ...

  8. php非递归无限级分类.

    项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param strin ...

  9. Windows 7下 搭建 基于 ssh 的sftp 服务器

    Windows  xp 下 搭建 基于  ssh 的sftp 服务器,服务器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用file ...

  10. ServletConfig和ServletContext

    ServletConfig和ServletContext Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为Servle ...