例6:输入矩阵
解:zeros(2,5) ↙ %生成元素都为0的2行5列零矩阵
例7:生成3阶魔方矩阵。 解:magic(3) ↙
?操作符“:”的说明
j:k 表示步长为1的等差数列构成的数组:[j, j+1, j+2,?, k]j:i:k 表示步长为i的等差数列构成的数组:[j,j+i,j+2*i,?, k] A(i:j) 表示A(i),A(i+1),?,A(j)
例8:操作符冒号”:”的应用
解:1:5 ↙ %步长为1的等差数列。 1:2:7 ↙ %步长为2的等差数列。 8:-2:0 ↙ %步长为-2的等差、递减数列。
?对矩阵元素的操作
A(i,j) 表示矩阵A的第i行第j列元素。 A(:,j) 表示矩阵A的第j列。 A(i,:) 表示矩阵A的第i行。 A(:,:) 表示A的所有元素构造2维矩阵
A(:) 表示以矩阵A的所有元素按列做成的一个列矩阵。 A(i) 表示矩阵A(:)的第i个元素。 [ ] 表示空矩阵
? 元素的抽取与赋值
例9:已知矩阵,抽取与修改矩阵A的一些元素
解:A=[1 23 56;sin(3) 7 9;log(2) 6 1] ↙ %输入矩阵A。A(2,3) ↙ %求矩阵A的第二行第三列元素。 A(4) ↙ %求矩阵A的第四个元素。 A(2:4) ↙ %取矩阵A的A(2),A(3),A(4)。
A(1,:) ↙ %取矩阵A的第一行。 A(:,3) %取矩阵A的第三列
a=A(1,3) ↙ %把矩阵A的第一行第三列元素赋值给变量a。 A(2,1)=100 ↙ %把矩阵A的第二行第一列元素修改为100。
?矩阵的扩充
A??13??15?3例10:已知矩阵
??69?,B????08?C??1?,利用
A与B
生成矩阵
??690?D??AB?AA??A,
??0B??。
解:A=[1,3;6,9]; %输入矩阵A C= A↙
C(1,3)=100; %把矩阵A扩充为1行3列矩阵 B=[1,5;0,8]; ↙ %输入矩阵B
D=[A,B] ↙ %由矩阵A与B合成矩阵D AA=[A,zeros(2);zeros(2),B] ↙ %由矩阵A与B合成分块矩阵AA
?矩阵的部分删除
例11:已知矩阵,删除矩阵A的第一行。
解:A=[1 23 56;sin(3) 7 9;log(2) 6 1]; ↙ A(1,:)=[] ↙ %删除矩阵A的第一行
? 矩阵的运算
A+B: 矩阵加法 A-B: 矩阵减法 A*B: 矩阵乘法 A\\B: 矩阵的左除
A/B: 矩阵的右除 transpose(A)或A’:A的转置
k?A:数k乘以A det(A): A的行列式:
rank(A):A的秩
?0??,
100七、数组
数组就是一行或者一列的矩阵,前边介绍的对矩阵输入、修改、保存都适用于数组,同时MATLAB还提供了一些创建数组的特殊指令。
? 特殊数组的创建
linspace(a,b,n) 给出区间[a,b]的n个等分点数据
logspace(a,b,n) 给出区间[10,10]的n个等比点数据,公比为10n?1。
例12:linspace(0,1,6) ↙ %给出区间[0,1] 的6个等分点数据
logspace(0,1,6) ↙ %给出区间[10,10]的
? 数组运算
除了作为1×n矩阵应遵循矩阵的运算规则外,MATLAB还为数组提供了一些特殊的运算: 乘法为:.* ,左除为:.\\ ,右除为:./ ,乘幂为:.^
设数组???a1,a2,?,an?,???b1,b2,?,bn?,则对应的运算具体为:
?.*???a1b1,a2b2,?,anbn?
01abb?a6个等比点数据
?.^k?a1,a2,?,an?./????kkk?
?a1a2an?,,?,?bbb12n???b1,b2,?,?.\\????a1a2bn??an?
例13:数组运算例题
a=1:5 ↙ %定义数组a b=3:2:11 ↙ %定义数组b
a.^2↙ %数组a的每一个元素求平方
a.*b↙ %数组a的每一个元素乘以对应的数组b的元素
sin(k?2例14:计算
),k??2,?1,0的值。
解:x=-pi:pi/2:pi; ↙ %定义自变量x
y=sin(x) ↙ %求自变量x的每一个元素对应的正弦值
八、M文件
M文件有两种形式:命令文件和函数文件。它们都是由若干MATLAB语句或命令组成的文件。两种文件的扩展名都是.m。若程序为命令文件,则程序执行完以后,中间变量仍予以保留;若程序为函数文件,则程序执行完以后,中间变量被全部删除。
? 文件的操作
在MATLAB中新建M文件的操作是在命令窗口中选择File|New|M-File,然后用鼠标单击M-File,就可以打开MATLAB自带的M文件编辑器。也可以对已经存在的M文件进行编辑、存储、修改和读取。
? 命令文件
M文件有两种运行方式:一是在命令窗口直接写文件名,按Enter键; 二是在编辑窗口打开菜单Tools,再单击Run。M文件保存的路径一定要在搜索路径上,否则M文件不能运行。以下例题中如果不做特别说明,都是以第一种方式运行的。
例15:用M命令文件画出衰减振荡曲线y?et的取值范围是[0,4?]。
?t3sin3t及其它的包络线y0?e?t3。
解: 1.打开M文件编辑窗口; 2.在编辑窗口逐行写下列语句;
t=0:pi/50:4*pi; y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b')
3.保存M文件,并且保存在搜索路径上,文件名为a1.m; 4.运行M文件。
? M函数文件
M函数文件的一般形式为:
function <因变量>=<函数名>(<自变量>)
M函数文件可以有多个因变量和多个自变量,当有多个因变量时用[]括起来。
例16:设可逆方阵为A,编写同时求 解:1.打开M文件编辑窗口; 2.在编辑窗口逐行写下列语句;
function [da,a2,inva,traa]=comp4(x) %M函数文件comp4.m同时求矩阵x的四个值 ú为矩阵x的行列式 ¢为矩阵x的平方 %inva为矩阵x的逆矩阵 %traa为矩阵x的转置 da=det(x) a2=x^2 inva=inv(x) traa=x'
3. 保存M函数文件,并且保存在搜索路径上,文件名为comp4.m; 4.命令窗口执行下列语句:
A=[1,2;5,8];↙ %输入矩阵A。
comp4(A)↙ %调用comp4.m函数计算矩阵A的
A,A,A,A'2?1A,A,A,A'2?1的M函数文件。
。
九、程序设计语句
? for循环
for i=范围表达式
可执行语句
end