matlab第一章习题集合及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 多多练 赋值语句 例1-3:
在命令窗口键入:
1+2*3+6/2
键入
a=2;b=3;c=4;
totle=a*b+c 例:当π+=1x 时,计算表达式 的值,并将结果赋给变量y ,然后显示出结果。

在MATLAB 命令窗口分别输入命令:
x=sqrt(1+pi); y=(exp(x)+log(abs(sin(x)^2-sin(x*x))))/(x-5*i) %计算表达式的值
变量的管理 例1-4:
who;%显示目前工作空间的变量名
whos %显示变量名,变量大小,数据类型等
save myfilename %MATLAB 将产生一个名为myfilename.mat 的文件,文件中保存了当前工作空间的所有变量
save mydata a b %MATLAB 将产生一个名为mydata.mat 的文件,文件中保存了当前工作空间的变量 a 和 b.
clear %把当前工作空间清空
22
e ln sin sin 5x x x x i
+--
who %结果没有任何变量显示
load myfilename %把文件myfilename.mat中的变量装入当前工作空间
load mydata % 把mydata.mat中的内容装入MATLAB工作空间:
数据的输出格式例1-5:
x=215/6;
format long; %16位十进制
x
format short e; %五位十进制数加指数
x
format long e; %16位十进制数加指数
x
format hex %16位十六进制数
x
format bank %两位小数
x
format + %正、负或零
x
format rat %分数近似
x
format short %4位小数,默认格式
x
format compact %紧凑格式
x
format loose %默认格式
x
矩阵的生成例1-6:
直接输入法:
[1 2 3]
[1;2;3]
x=[-1.3 sqrt(3) (1+2+3)/5*4]
在命令窗口键入:
A=[1 0 3 -1;2 1 0 2]
键入:B=[4 1 0;-1 1 3;2 0 1;1 3 4]
C=3+4i %输入复数
D=[1+2i 3+4i;5+6i 7+8i]%输入复数
[1 3;5 7]+[2 4;6 8]*i%输入复数*号不可少
利用M文件建立矩阵例1-7
(1)启动MATLAB的M-file编辑器,并输入待建矩阵
mydata=[1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9;
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9;
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9];
(2)把输入的内容保存(设文件名为matfund.m)。

(3)在MATLAB命令窗口中输入matfund,即运行该M文件,就会自动建立一个名为mydata的矩阵,可供以后使用。

利用数据文件建立指定矩阵
利用文本编辑器建立矩阵:创建一个数据文件test.dat(或.txt),保存在D:\ test.txt.包含下列数据:
2 4 6 8 6
3 5 6 7 3
2 5 1 2 5
在命令窗口输入:
load D:\test.dat
test
运行结果为
test =
2 4 6 8 6
3 5 6 7 3
2 5 1 2 5
利用已建好的矩阵建立新的矩阵例1-8:
输入:
A=[1,2,3;4,5,6;7,8,9];
B=[11:13;14:16;17:19];
C=[A,B;B,A]
运行结果为:
C =
1 2 3 11 12 13
4 5 6 14 15 16
7 8 9 17 18 19
11 12 13 1 2 3
14 15 16 4 5 6
17 18 19 7 8 9
A =[12 2 1; 4 5 2; 7 8 3; 0 0 4; 0 18 5]
B=A([2,4],[1,3]) %把A矩阵中2、4行,1、3列交点的元素取出给B生成新的矩阵
用matlab的函数产生特殊的矩阵例1-9
f1=zeros(2,3)% 产生所有元素均为零的矩阵
f2=ones(3,2) %产生所有元素均为1的矩阵
f3=eye(3,4) %产生对角元素为1,其余为0的矩阵
f4=magic(3) %产生魔方矩阵
f5=linspace(0,2,5 ) %在0,2之间均匀地产生5个点值,形成n维向量
f6=[0:0.5:2] %在0与2之间每隔0.5产生一个数据
f7=rand(3,4)
f8=logspace(1,3,10)
f9=randn(3,4)产生均值为0,方差为1的标准正态分布随机矩阵
L=[1 2 3 ];K=[4 5 6 ];
cat(2,L,K) %(dim=2,表示横向连接)
ans =
1 2 3 4 5 6
cat(1,L,K) %( dim=1,表示列向连接)
ans =
1 2 3
4 5 6
A=[1 2 3 ;2 2 1 ;3 4 3] ;
P=diag(A) %提取对角元素
P =
1
2
3
Q=diag(K) %用K的值建立对角阵
Q =
4 0 0
0 5 0
0 0 6
repmat(A,2,3) %将 A重复两行三列扩展
ans =
1 2 3 1 2 3 1 2 3
2 2 1 2 2 1 2 2 1
3 4 3 3 4 3 3 4 3
1 2 3 1 2 3 1 2 3
2 2 1 2 2 1 2 2 1
3 4 3 3 4 3 3 4 3 repmat(5,2,3) %当A为标量时,以标量A生成一个m ×n 的矩阵
矩阵元素及矩阵拆分例1-10
A=[1 2 3;4 5 6;7 8 9]
size(A)
length(A)
sub2ind(size(A),2,3)
[x,y]=ind2sub(size(A),12)
A(2,3)=10;A(1,1)=12 %修改
A(5,2)=18 %扩展没赋值的地方自动赋零
a(1,1)=2;a(1,3)=4;a(3,3)=9 %产生一个矩阵
b=A(2,:) %输出矩阵A中第2行的值
A(:,3)=[1 2 3 4 5]' %给矩阵A中第3列赋值,'表示转置A([2,3],:)=[ ] %把A矩阵中2、3行,所有列的元素去掉。

A(:,3)=[ ] %把A矩阵中所有行,第3列的元素去掉。

基本算术运算例1-11
A=[1 2 3;2 2 1;3 4 3];
B=[2 1;5 3];
C=[1 3;2 0;3 1];
D=[7 8;2 4;5 0];
[nA,mA]=size(A),[nB,mB]=size(B),
[nC,mC]=size(C),[nD,mD]=size(D)
nA =
3
mA =
3
nB =
2
mB =
2
nC =
3
mC =
2
nD =
3
mD =
2
%判断只有C,D可以加减,
输入: C+D
输入: C-D
输入: A+D
%判断上面的矩阵中可以相乘的矩阵有:A与C、A与D、C与B、D与B
键入: F=A*C %A为3×3阶,C为3×2阶
键入:D*B %D为3×2阶,B为2×2阶
%一个n×s阶的矩阵与一个s×m阶矩阵相乘后为n×m阶矩阵
键入:A*2 %A为3×3阶,2为标量
V=inv(A)
A*V
V*F %相当于A\F
A\F
E=sqrtm(A)
G=E^2
expm(A)
logm(A)
G=det(A)
H=A'
方程组的求解:
求方程组
的根 解:方程组可以表示为AX=B 的形式。

A=[1 2 3;2 2 1;3 4 3];
B=[1;2;3];
X=A\B
x1=X(1)
x2=X(2)
x3=X(3)
X =
1
x1 =
1
x2 =
x3 =
⎪⎩⎪⎨⎧=++=++=++33432
22132321
321321x x x x x x x x x
点运算例1-12 %适用于.*、./、.\和.^乘方等点运算符还有指数exp () ,对数log (),开方sqrt ()等P26表中函数
a1=logspace(1,3,10)
a2=log10(f8)
键入:
a3=a1.*a2 % .*读作点乘,把两矩阵对应的元素相乘得结果。

键入:
a4=[4 9 25];
a5=sqrt(a4)
键入:
a6=[pi/2 pi/3 pi/4];
cos(a6)
键入:
x=[12 11 10 9];
y=[3 4 2 4];
rem(x,y) %求x./y的余数
键入:
x=[fix(13.37),floor(13.37),ceil(13.37),round(13.37)]
x =
13 13 14 13
键入:
x=[fix(-13.67),floor(-13.67),ceil(-13.67),round(-13.67)] 得:
x =
-13 -14 -13 -14
键入:
x=5;y=3;
[rem(x,y),mod(x,y)] 得:
ans =
2 2
键入:
x=-5;
y=3;
[rem(x,y),mod(x,y)] 得:
ans =
-2 1
关系运算例1-13
键入:
x=6<=5/2 %6是否小于等于5/2
键入:
y=6~=6/5 %6是否不等于6/5
键入:
A=[2 7 6;9 0 5;3 0.5 6];
B=[8 7 0;3 2 5;4 -1 7];
A==B %A是否等于B
3==B %当一个操作数是常数时,就与矩阵中的每个元素进行比较键入:
a=[1 2 0;4 0 0;5 6 0]
all(a) %一列全部非零就取一(有零出零)
any(a) %一列有非零就取一(有一出一)isfinite(a) %对矩阵中的每个元素判断是否为有限值
isreal(a) %对整个矩阵进行判断是否为实矩阵
[i,j]=find(a>2) %得到a中大于2的元素的下标值
i=find(a>2) %若只返回一个变量值时为符合条件的元素的序号,序号是按列排序的,第一列排完再排第二列
逻辑运算见例1-14
例:建立矩阵A,然后找出在 [10,20] 区间的元素的位置。

A=[4,15,-45,10,6;56,0,17,-45,0]
A =
4 1
5 -45 10 6
56 0 17 -45 0
find(A>=10 & A<=20)
输入:[i,j]=find(A>=10 & A<=20),比较结果
把[10,20] 区间的元素用机器零代替
字符串处理:例1-15
建立一个字符串向量,然后对该向量做如下处理。

(1)取第12~18个字符组成的子字符串。

(2)将字符串中的小写字母变成相应的大写字母,其余字符不变。

(3)统计字符串中小写字母的个数。

ch='Welcome to Beijing';
subch=ch(12:18) %取子字符串
k=find(ch>='a'&ch<='z'); %找小写字母的位置
ch(k)=ch(k)-('a'-'A'); %将小写字母变成相应的大写字母ch %输出字符串
length(k) %统计小写字母的个数。

相关文档
最新文档