美文网首页
MATLAB(二)脚本

MATLAB(二)脚本

作者: 飞向深空 | 来源:发表于2020-03-11 09:22 被阅读0次

基础内容:https://blog.csdn.net/ncepu_Chen/article/details/103047811

补充:

  • help xxx,打印出函数注释的文本
  • 创建函数文件,左上角菜单新建-->函数
  • 主函数和子函数,每个脚本的第一个函数是主函数,后面定义的函数是该主函数的子函数,可以从命令行或其它函数文件外部调用主函数但不能调用子函数。子函数仅仅对函数文件中的主函数和其它子函数可见。
function [x1,x2] = quadratic(a,b,c) %主函数
%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic

function dis = disc(a,b,c)  %子函数
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
  • 函数嵌套
    可以在一个函数的主体内定义另一个函数。这样的函数被称为嵌套函数。嵌套函数包含任何其他函数的部分或全部组件。
    嵌套函数在另一个函数的范围内定义,并且它们共享对包含函数的工作空间的访问。
    嵌套函数遵循以下语法 -
function x = A(p1, p2)
...
B(p2)
   function y = B(p3)
   ...
   end
...
end

示例
下面来重写quadratic函数,从上一个例子来看,然而这次disc函数将是一个嵌套函数。
创建一个函数文件quadratic2.m并在其中键入以下代码 -

function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end % end of function disc
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of function quadratic2
  • 私有函数
    在当前工作路径下新建一个文件夹叫private(名字固定),工作路径里的脚本可以调用此private文件夹里的内容,其它路径不行。
    在命令窗口也无法调用,但是可以 help 函数名 来查看注释。

  • 全局变量
    用global声明
    全局变量可由多个函数共享。 为此,需要在所有函数中声明变量为全局变量。
    如果要从基本工作区访问该变量,则在命令行中声明该变量。
    全局声明必须在函数实际使用变量之前进行。 将大写字母用于全局变量的名称是一个很好的做法,以区别于其他变量。
    如一个函数

function avg = average(nums)
global TOTAL //全局变量
avg = sum(nums)/TOTAL;
end

在命令行用时
global TOTAL;
TOTAL = 10; //先声明
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)

相关文章

网友评论

      本文标题:MATLAB(二)脚本

      本文链接:https://www.haomeiwen.com/subject/dslmdhtx.html