Matlab定义子函数

上篇博客介绍了在Matlab中自己定义简单函数的方法,本篇博客将介绍定义子函数的方法。本文承接上篇博客的样例,即随机生成一个3行4列的矩阵,矩阵中的元素设定上下限为(low,high)。并返回矩阵全部元素的和。

.m文件代码例如以下所看到的:

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



如今,使用子函数实现上述函数的功能。代码例如以下所看到的:

function [a, s] = myRand(low, high)
a = low + rand(3,4)*(high-low);
s = sumAllElement(a);

function sum_a = sumAllElement(M)
v = M(:);
sum_a = sum(v); 
上述代码定义了一个子函数sum_a。其被函数myRand所调用。须要注意的是,上述两个函数都没有以"end"keyword结尾。假设函数myRand以"end"keyword结尾,则子函数sum_a必须以"end"keyword结尾。反之亦然,否则会报错。

在command window中运行myRand命令。得到的结果例如以下:

>> [x ss] = myRand(2,4)
x =
    2.9736    2.6127    3.6353    2.7572
    2.8717    3.0170    3.5897    3.6232
    2.8936    3.0215    3.2886    3.0657
ss =
   37.3497



posted @ 2016-01-24 08:38  blfshiye  阅读(632)  评论(0编辑  收藏  举报