Matlab编程与仿真(7)

2019-04-21 14:31

讲义

%以后的注释

A=abs(x); ph=angle(x)

end %定义函数的M文件应以语句end结尾

引用函数myfun的例子是: clear i;

c=randn(1,300)+i*randn(size(a)); Am=myfun(c); %只引用第一个返回值时可照此做

[Amp,Sita]=myfun(c); %要引用两个返回值时须照此做

函数可以无输入或输出参量,例如 function a=newfun

%函数示例, 文件全名是newfun.m % a=newfun

% 本例无输入值,但有输出

str=['真棒 '; '真倒霉'];

31 讲义

i=round(rand)+1; %产生一个取值1,2的随机数

a=str(i,:); %取矩阵str第i行上的所有元素

end %函数结束

在函数内部定义的变量都是本地变量。本地变量同外部变量(调用函数的外部过程所使用的变量)使用不同的内存区,因此即使它们的标识符相同,也不会发生冲突。MATLAB的函数中也可以定义全局变量,格式是 global a b c

此句声明 a、b、c是全局变量。global声明必须在引用之前。 2.6 循环与分支 2.6.1 FOR循环

MATLAB中,FOR循环的格式是: for 循环变量 = 循环值表, 循环体, end 例如:

>>clear j

32 讲义

>>a=[1:4];

>>for i=1:3, a(i)=i+j;end, >>a a =

1.000 + 1.000i 2.000 + 1.000i 3.000 + 1.000i 4.000

本例中,clear j是MATLAB命令,其功能是清除对变量j以前的定义以使之只表示虚数运算符j??1。i是循环变量。循环值表是1:3也即1,2,3。循环体只有一句a(i)=i+j;,最后的a是为了显示结果。上面的循环等价于a(1:3)=[1:3]+j。

循环体可以是多条语句,例如 for i=1:-0.1:0 d1(i)=sin(I); d2(i)=cos(i); d3(i)=tan(i); end

此例也可这样实现 i=[1:-0.1:0];

d1=sin(i);d2=cos(i);d3=tan(i);

33 讲义

由于MATLAB的矩阵运算特性,许多循环功能都可以用矢量运算代替,这样可提高编程效率,一般也能提高运行速度。

循环值表也可以是矢量或矩阵。例如: i=0;

for x=[1,4,16,20,-3] i=i+1; y(i)=x^2; end 此例等价于

x=[1,4,16,20,-3];

y=x.^2; %对矢量的元素平方

结果是y =[1 16 256 400 9]。如果循环值表是矩阵,则循环变量是一个列矢量,循环次数等于循环值表的列数: i=0;

B=randn(5); %5乘5的正态随机数矩阵

for A=B %循环变量A是B的列 i=i+1;

34 讲义

B_max(i)=max(A); %求矢量A的最大值

B_min(i)=min(A); %求矢量A的最小值

end %循环结束 这段程序等价于 B=randn(5); B_max=max(B); B_min=min(B); 2.6.2 IF语句

IF语句是条件执行语句,其格式为: if 条件变量, 条件执行体, end

如果条件变量的实部的所有元素都不为零,则条件执行体被执行,否则跳过此句。也就是说,条件变量可以是数、矢量或矩阵,也允许是复数类型。例如: i=round(rand); a='i=0';

if i, a='i=1';end

35


Matlab编程与仿真(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国城市垃圾资源化处理现状与展望

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: