Matlab学习笔记2 脚本和函数

function命名不能数字开头,大小写是有区别的。

脚本(script)是最简单的MATLAB程序,包括序列运行的命令

使用edit命令可以创建脚本

edit mysphere % 这样就可以创建一个文件名为mysphere的脚本

输入以下代码,生成50个随机数,并画图,且在图中标出平均数。

n = 50;

r = rand(n,1);

plot(r)

m = mean(r);

hold on

plot([0,n],[m,m])

hold off

title( Mean of Random Uniform Data )

function可以被调用,不用打开,跟script不一样

edit(which( mean.m ))

使用这个命令可以查看function的代码,上面的命令表明使用这个语句看mean这个函数的代码,结果如下所示。

function是keyword,y是输出,mean是程序名称,也是文件名称,x是输入。 必定要有keyword才能在matlab中进行调用。

function y = mean(x,dim)

%  MEAN  Average or mean value.

%  For vectors, MEAN(X) is the mean value of the elements in X. For

%  matrices, MEAN(X) is a row vector containing the mean value of

%  each column.  For N-D arrays, MEAN(X) is the mean value of the

%  elements along the first non-singleton dimension of X.

%  MEAN(X,DIM) takes the mean along the dimension DIM of X.

%  Example: If X = [1 2 3; 3 3 6; 4 6 8; 4 7 7];

%  then mean(X,1) is [3.0000 4.5000 6.0000] and

%  mean(X,2) is [2.0000 4.0000 6.0000 6.0000].

%  Class support for input X:

%      float: double, single

%  See also MEDIAN, STD, MIN, MAX, VAR, COV, MODE.

%  Copyright 1984-2009 The MathWorks, Inc.

%  $Revision: 5.17.4.5 $  $Date: 2010/09/02 13:35:22 $

if nargin==1,

  % Determine which dimension SUM will use

  dim = find(size(x)~=1, 1 );

  if isempty(dim), dim = 1; end

  y = sum(x)/size(x,dim);

else

  y = sum(x,dim)/size(x,dim);

end

创建自己的function

创建一个计算自由落体运动的function

function x = freebody(x0,v0,t)

x = x0 + v0.*t + 0.5*9.8*t.*t;

这里使用点乘t.*t,而不是使用t^2,是由于点乘是element-wise的计算方式,可以对矩阵进行运算。我们可以有多个

x0、v0、和t的输入,这个function可以同时算多个结果,就不用一次一次的进行计算了。

如freebody([0 2],[0 8],[10 27]),可同时计算freebody(0,0,10)和freebody(2,8,27)的结果。

创建一个有多个输入和多个输出的function,加速度和力的function

function [a F] = acc(v2, v1, t2, t1, m)

a = (v2-v1)./(t2-t1);

F = m.*a;

在这个function,有a和F两个输出(多个输出以向量显示),还有v2等5个输入

在运行时,可以采用以下的方式,这样就可以把a和F指定给中括号中的两个名称。

>> [Acc Force] = acc(20,10,5,4,1)

Acc =

    10

Force =

    10

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
子夜笙歌落ing的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容