讲义
b包含8000个取值1、0等概的随机二进制数。c是b加上了方差为0.1的高斯干扰。 不带参数地引用rand或randn返回一个标量的随机数。 (3) linspace
函数linspace(a,b,N)产生一个N维矢量,N个元素均匀分隔区间[a,b],第一个元素是a,最后一个元素是b。 2.4.6 数据分析函数
数据分析函数包括:最大值max、最小值min、均值mean、标准差std、升序排序sort、 求和sum等。例如:
>>a=randn(1,8000); >>L=length(a) L =
8000
>>y=[max(a),min(a),mean(a),std(a),sum(a)/L] y =
4.0633 -3.6618 -0.0017 1.0037 -0.0017 >>b=a(1:20) b =
Columns 1 through 7
1.0682 -0.1050 -1.7675 -1.0252 0.8211 1.7200 -0.6543
Columns 8 through 9 1.0178 -1.4090
26 讲义
当MATLAB不能把一个行矢量在屏幕的一行上显示时,它把这个矢量折成若干行显示。并在每行前说明对应的列序号。
如果max(a)函数中a不是矢量而是矩阵,则max(a)对a的各列求最大值。例如
>>B=rand(5),max(B) B =
0.1665 0.9047 0.4865 0.5045 0.8977 0.5163 0.9092 0.3190 0.0606 0.9866 ans =
0.9092 0.9866
0.4940 0.2661 0.0907 0.9478 0.0737
0.5007 0.3841 0.2771 0.9138 0.5297
0.4644 0.9410 0.0501 0.7615 0.7702
0.9478 0.9138 0.9410
其它函数如min、mean、std、sort、 sum也是如此,例如:
>>B=rand(5),sort(B),sum(B) B =
0.8278 0.6295 0.2332 0.1254 0.7362 0.3063 0.0159 0.7254 0.3510 0.6885 0.9995 0.5133 0.8682 0.8886 0.5911 ans =
0.0159 0.6295 0.2332 0.1254 0.7254 0.3063 0.6885 0.7362 0.3510 0.8278 0.8886 0.5133 0.8682 0.9995 0.5911 ans =
2.5258 3.9792 1.9949
0.8460 0.4121 0.8415 0.2693 0.4154 0.2693 0.4121 0.4154 0.8415 0.8460
0.5373 0.4679 0.2872 0.1783 0.1537 0.1537 0.1783 0.2872 0.4679 0.5373
2.7843 1.6245
这里,sort(B)对B的各列排序,sum(B)对B的各列求和。
27 讲义
2.5 MATLAB编程 2.5.1 M文件
用文本编辑器如notepad.exe把MATLAB的命令及语句编辑成一个文本文件,并把文件的扩展名定为.m,这样的文件叫M文件。在MATLAB命令行中键入M文件的文件名(不包括小数点及扩展名“.m”),即可一次性地执行该文件中的所有命令或语句。这一点很像DOS中的批处理文件(.BAT),只是MATLAB在执行M文件之前要先进行一些编译处理。下面是M文件的一个例子: % M文件示例
% 百分号之后是注释
a=randn(1,8000); %分号结尾时不显示结果
L=length(a),b=sin(a);c=L+1 %同一行中可写多条语句
%语句间应用逗号或分号隔开 d=a+j*pi; %d是一个复矢量 j=2 %重新定义j d2=a+j*pi; ò是实矢量
28 讲义
d1=a+pi*i; ?是复矢量
u1=sin(d1);u1(1:3) %复数的正弦是复数
u2=sin(d2);u2(1:3), %实数的正弦是实数
[max(u2),min(u2)]
把这段程序存为文件test.m,在MATLAB命令行状态下,执行test: >>test L =
8000 c =
8001 j =
2 ans =
7.6385 + 8.6868i 5.8773 + 9.9543i -1.9730 +11.3802i ans =
0.6590 0.5070 -0.1702 ans =
1.0000 -1.0000
29 讲义
M文件中可以包括所有合法的MATLAB命令或语句,也可以包括你已经编好的其它M文件名。 2.5.2 自定义函数
你也可以编制自己的函数。一个函数对应一个M文件,函数名就是M文件的文件名,自定义函数的M文件第一行必须是如下格式: function [返回值表]=函数名(输入变量表)
例如:
function [A,ph]=myfun(x)
%函数示例, 函数名为myfun,文件全名必须是myfun.m
%本函数求复矢量x的模与相角 % [A,ph]=myfun(x)
% x为输入的复矢量; A,ph是函数myfun的返回值
%执行help myfun可看到以上注释, 但不包括本行及
30