资源描述
实验一、MATLAB基本操作
一、实验目的
2.学习使用图形函数计算器命令funtool及其环境。
3. 学习使用help命令进行帮助
4. 掌握向量与矩阵的创建以及矩阵的基本操作
5. 掌握数组与矩阵的概念
二、 实验内容
熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;掌握数组与矩阵的概念;学会使用help命令进行帮助;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool;
1. 命令窗 口的简单使用
(1) 简单矩阵的输入 (自由创建)
x=[1 3 5;2 4 6]
x =
1 3 5
2 4 6
(2) 求[12+2×(7-4)]÷32的算术运算结果,总结算术运算符先级
[12+2*(7-4)]/3^2
ans =
2
2. 有关向量、矩阵或数组的一些运算
(1) 设A=15;B=20;求C=A+B与c=a+b的区别
A=15;B=20;
>> C=A+B
C =
35
>> c=a+b
??? Undefined function or variable 'a'.
(2) 设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B,分析原因?
(A*B是两个矩阵相乘,A.*B是对应元素相乘)
A=[1 2 3;4 5 6;7 8 9];
B=[9 8 7;6 5 4;3 2 1];
>> A*B
ans =
30 24 18
84 69 54
138 114 90
>> A.*B
ans =
9 16 21
24 25 24
21 16 9
(3) 设a=10,b=20;求i=a/b与j=a\b
a=10;
>> b=20;
>> i=a/b
i =
0.5000
>> j=a\b
j =
2
(4) 设a=[1 -2 3;4 5 -4;5 -6 7]
请设计出程序,分别找出小于0的矩阵元素的线性索引以及行列索引(sub2ind/ind2sub)。(find())
并将其单下标转换成全下标。
clear,clc
a=[1 -2 3;4 5 -4;5 -6 7];
b=find(a<0)
[x,y]=ind2sub(size(a),find(a<0))
Y=sort(a, 1, ‘descend’)
2.对矩阵按列从大到小 排列 (sort())
(5) 在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?
>> A=[1,2;3,4]+i*[5,6;7,8]
A =
3.5000 5.0000
6.5000 8.0000
>> A=[1,2;3,4]+i[5,6;7,8]
??? A=[1,2;3,4]+i[5,6;7,8]
Error: Unbalanced or misused parentheses or brackets.
前面那个是虚数矩阵,后面那个出错
(6) 请写出完成下列计算的指令:
a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?
a^2= 22 16 16
25 26 23
26 24 28
a.^2=
1 4 9
9 16 4
25 4 9
(7) 有一段指令如下,请思考并说明运行结果及其原因
clear
X=[1 2;8 9;3 6];
X( : ) 转化为列向量
>> clear
>> X=[1,2;8,9;3,6];
>> X(:)
ans =
1
8
3
2
9
6
(8) 使用help命令,明白什么是稀疏矩阵sparse( ),并用采用两种方法创建下面的稀疏矩阵(其中一种方法采用help所提供的三元组方法创建稀疏矩阵
(S = SPARSE(i,j,s,m,n)))
2 0 8 0
0 0 0 1
0 4 0 0
6 0 0 0
另:
1.B=该稀疏矩阵上下反转
2.该矩阵变维,C为2*8矩阵,D为3*8矩阵,C?D?
方法一:
clear,clc
data=[2 8 1 4 6];
ir=[1 1 2 3 4 ];
jc=[1 3 4 2 1];
s=sparse(ir,jc,data,4,4);
full(s)
方法二:不用三元组法
clear,clc
a=zeros(4,4);
a(1,[1,3])=[2,8];
a(2,4)=1;
a(3,2)=4;
a(4,1)=6;
a
B=flipud(a)
C=reshape(a,2,8)
(9) 学会使用图形函数计算器(funtool 命令),并进行下列计算:
1.求函数的符号导数
y=sin(x);
2.求下列函数的符号积分
(1) y=1/sqrt(1-x^2);
3.求两个函数之间的操作
求和
(1) sin(x)+cos(x)
乘积
(1) exp(-x)*sin(x)
商
(2) (1) sin(x)/cos(x);
求复合函数
(1) y=exp(u) u=sin(x)
(10) 总结who,whos,clc,clear命令
三、设计提示
1.初次接触Matlab应该注意函数表达式的文本式描述。
2.在使用图形函数计算器funtool时,注意观察1号和2号窗口中函数的图形。
3. help帮助命令的使用
3. 向量与矩阵的创建
实验二:数组运算及线型方程组的求解
二、实验内容
1.“:”号的用法。用“:”号生成行向量a=[1 2 3 4 5 6 7 8 9 10]、b=[5 3 1 -1 -3 -5];用线性等分命令linspace重新生成上述的a和b向量。另,在100和10000之间用对数等分命令logspace生成10维的向量c。ak=logspace(2,4,10) linspace(1,10,10) linspace(5,-5,6)
2. 已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b的积并微分。
>> a=[1,2,3];b=[4,5,6];polyder(a,b)
ans =
16 39 56 27
>> poly2str(ans,'x')
ans =
16 x^3 + 39 x^2 + 56 x + 27
3.生成下列矩阵,取出方框内的数组元素
a(2,2:3)
a(2:4,4)
a(4:5,1:3)
4. 生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。并且实现上述中心矩阵左旋90°或右旋90°,左右翻转,上下翻转
a=magic(9)
>> b=a(4:6,4:6)
b =
20 31 42
30 41 52
40 51 62
>> sum(b,1)
ans =
90 123 156
>> sum(b,2)
ans =
93
123
153
rot90(b)
rot90(b,-1)
fliplr(b)
flipud(b)
5.已知a=[1 2 3;4 5 6;7 8 0],求其特征多项式并求其根、特征值和特征多项式
>> a=[1 2 3;4 5 6;7 8 0]
a =
1 2 3
4 5 6
7 8 0
>> poly(a)
ans =
1.0000 -6.0000 -72.0000 -27.0000
>> poly2sym(ans)
ans =
x^3-6*x^2-72*x-7599824371187741/281474976710656
>> [d v]=eig(a)
d =
-0.2998 -0.7471 -0.2763
-0.7075 0.6582 -0.3884
-0.6400 -0.0931 0.8791
v =
12.1229 0 0
0 -0.3884 0
0 0 -5.7345
6. 计算二重不定积分
>> syms x y
>> f=int(int(x*exp(-x*y),x),y)
或
>> x=sym('x')
x =
x
>> y=sym('y')
y =
y
>> f=int(int(x*exp(-x*y),x),y)
f =
1/y*exp(-x*y)
8.求解微分方程。
y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
9.求其解。
>> a=[6 9 14 -11 5;1 14 -7 -15 -6;-2 1 -7 12 -1;6 11 11 -9 -13]
a =
6 9 14 -11 5
1 14 -7 -15 -6
-2 1 -7 12 -1
6 11 11 -9 -13
>> b=[68 294 -441 103]'
b =
68
294
-441
103
>> ra=rank(a)
ra =
4
>> rb=rank([a,b])
rb =
4
%4<5
>> x1=null(sym(a))
x1 =
27713/253
-11117/506
-8394/253
1
1619/506
>> a\b
ans =
0
-26.3759
-5.4126
-38.3960
-8.2392
X=K*x1+ans
实验三:二维图形和三维图形的创建
一、实验目的
1.掌握二维图形的绘制。
2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
二、实验内容
1.生成1×10维的随机数向量a,在同一幅图片上分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
>> x=rand(1,10)
x =
Columns 1 through 7
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 0.4565
Columns 8 through 10
0.0185 0.8214 0.4447
>> subplot(141);
>> plot(x)
>> subplot(142);
>> stem(x)
>> subplot(143);
>> stairs(x)
>> subplot(144);
>> bar(x)
2.绘制向量x=[1 3 0.5 2.5 2]的饼形图,并把3对应的部分分离出来。
x=[1 3 0.5 2.5 2];
>> pie(x,[0 1 0 0 0])
3.用hold on命令在同一个窗口绘制曲线y=sin(t),y1=sin(t+0.25)
y2=sin(t+0.5),其中t=[0 10]。
t=0:2*pi/100:10;
y1=sin(t);
plot(t,y1)
hold on
y2=sin(t+0.25);
plot(t,y2)
hold on
y3=sin(t+0.5);
plot(t,y3)
4.绘制曲线 x=tcos(3t)
y=tsin2t 其中-π≤t≤π,步长取π/100。
要求:要图形注解、标题、坐标轴标签, 并在曲线上截取一点,将相对应的坐标值文本标注出来(ginput())。;
t=-pi:pi/100:pi;
x=t.*cos(3*t);
y=t.*sin(t).^2;
plot(x,y);
title('曲线图');
legend('x=tcos(3t),y=tsin^2t');
xlabel('x轴数据');
ylabel('y轴数据');
>> hold on
>> [m,n]=ginput(1)
m =
0.7465
n =
-0.4971
>> plot(m,n,'or')
>> text(m,n,['m=',num2str(m),'n=',num2str(n)])
5.在三个子图像中,分别绘制三维曲线,三维曲面,三维网格的半径为6,坐标为(6,7,6)的由900个面构成的球面(sphere()),对每个图形标注标题
[x,y,z]=sphere(30);
Z=z*5+6;
X=x*5+6;
Y=y*5+7;
subplot(1,3,1)
mesh(X,Y,Z);
title('三维网格')
subplot(1,3,2)
plot3(X,Y,Z)
title('三维曲线')
subplot(1,3,3)
surf(X,Y,Z)
title('三维曲面')
6.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5,每圈上升高度为1。如左图所示。
2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。
(>> t=0:0.01:5;
x1=5*cos(2*pi*t);
y1=5*sin(2*pi*t);
z=t;
subplot(121), plot3(x1,y1,z)
>> grid on
>> x2=t.*cos(2*pi*t);
>> y2=t.*sin(2*pi*t);
>> z=t;
>> subplot(122), plot3(x2,y2,z)
>> grid on
思考题:如果要绘制出如图所示的图形,请先指出这四个图形分别对应哪副图,以及请正确填写下列空格
subplot( 6 , 4 ,[2 3 4 6 7 8] );plot(1:10);grid on;
subplot( 6 ,4 , [10 11 14 15]);plot(peaks);grid on;
subplot( 6 , 4 , [5 9]);plot(membrane);grid on;
subplot( 6, 4 , [17 18 21 22]);surf(membrane);grid on;
三、设计提示
1.Matlab允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……)指令绘制等多条曲线。Matlab自动给这些曲线以不同颜色。标注可用text函数,legend函数等,数据截取ginput函数,。
2.若干个图像在一副图像上显示,可以用hold on,子图像用subplot函数。
3.三维绘图函数为plot3,mesh(),surf()。
实验四:函数编写与程序设计
一、实验目的
1 . 掌握M文件的创建。
2.掌握函数的编写规则。
3.掌握函数的调用。
4 . 掌握基本的输入输出函数以及显示函数的用法。
5.会用Matlab程序设计实现一些工程算法问题。
二、实验内容
1 . 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。
解: a=input('请输入一个数:');
b=input('请再输入一个数:');
fuhao=input('请输入一个运算符号(+ - * /):','s');
switch fuhao
case {'+'}
he=a+b;
disp(['和=',num2str(a),'+',num2str(b),'=',num2str(he)])
case {'-'}
he=a-b;
disp(['差=',num2str(a),'-',num2str(b),'=',num2str(he)])
case {'*'}
he=a*b;
disp(['积=',num2str(a),'*',num2str(b),'=',num2str(he)])
case {'/'}
he=a/b;
disp(['商=',num2str(a),'/',num2str(b),'=',num2str(he)])
otherwise disp('请输入正确的符号')
end
2 . 求下列分段函数的值
要求:用if语句实现,分别输出x = -5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。其中x的值以向量的形式从键盘输入。(length())
解:x=[];
y=[];
x=input('请输入x的值:');
for k=1:length(x)
if x(k)<0 & x(k)~=-3
y(k)=x(k).^2+x(k)-6;
elseif x(k)>=0&x(k)<10&x(k)~=2&x(k)~=3
y(k)=x(k).^2-5*x(k)+6;
else
y(k)=x(k).^2-x(k)-1;
end
end
for i=1:length(y)
disp(['y(',num2str(x(i)),')','=',num2str(y(i))]);
end
[-5.0 -3.0 1.0 2.0 2.5 3.0 5.0]
3.编写一个mcircle(r)函数,调用该函数时,根据给定的半径r,以
4. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89.5分为B,70分~79.5为C,60分~69.5分为D,60分以下为E。
要求:1)分别用if语句和switch语句实现
2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”)
(num2cell函数:将数值矩阵转化为单位矩阵
num2cell(1:5)={1 2 3 4 5 })
解:score=input('请输入您的分数:');
if rem(score,0.5)==0
switch score
case num2cell(90:0.5:100)
disp('您的成绩等级为 A')
case num2cell(80:0.5:89)
disp('您的成绩等级为 B')
case num2cell(70:0.5:79)
disp('您的成绩等级为 C')
case num2cell(60:0.5:69)
disp('您的成绩等级为 D')
case num2cell(0:0.5:59.5)
disp('您的成绩等级为 E')
otherwise
disp('你输入的成绩不合理')
end
else
disp('你输入的成绩不合理,若出现小数只能是0.5')
end
5.编写一个函数,实现对一个向量求以及求平均值的功能。(要求实现函数中,输入若不是一个向量,则报错)
function [s,m]=qiu(v)
[m,n]=size(v);
if(m>1 & n>1)|(m==1 & n==1)
error('error')
end
s=sum(v);
m=s/length(v);
6 . Fibonacci数组的元素满足Fibonacci规则:
a(k+2)=a(k)+a(k+1),(k=1,2,3,…);且a1= a2=1。
请设计一段程序,求出该数组中第一个大于10000的元素
要求显示的结果为:
i=21
a(i)=10946
或者
a(21)=10946
法一:a(1)=1;
a(2)=1;
for k=1:10000 %不能是3:10000
a(k+2)=a(k)+a(k+1);
if a(k)>10000
break;
end
end
disp(['k=',num2str(k)])
disp(['a(k)=',num2str(a(k))])
8 . 编写一个阶乘函数jiecheng.m,利用该函数找出最小的n值,使得n!>10100,并求出n!。
解:function s=jiecheng(n)
s=1;
if n==0
s=1;
elseif n<0
error('n必须大于等于0')
else
for i=1:n
s=s*i;
end
end
for n=1:1000
if(jiecheng(n)>10^100)
break;
end
end
str1=['n=',num2str(n)];
str2=['n!=',num2str(s)];
disp(str1)
disp(str2)
9.程序设计:公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?x+y+z=100
5x+3y+z/3=100
这是一个欠定方程。
for x=0:19
for y=0:33
for z=0:100
if (x+y+z==100)&(5*x+3*y+z/3==100)
d=[x,y,z]
end
end
end
end
三、设计提示
1.函数名和函数文件名应相同;对调用参数的取值范围要检验是否符合要求,如不符合要求,应给出出错信息(用if和error或disp函数实现)。
2.程序设计——“百鸡问题”答案不唯一。提示:设x:鸡翁数,则x的范围:0~19;y:鸡母数,则y的范围:0~33;z:鸡雏数,则z的范围:0~100。
实验五:Matlab多项式和符号运算
二、实验内容
1.将多项式化为x的降幂排列。p=poly([2 -3 7 -1])
P=poly([2,-3,7,-1])
poly2str(P,'x')
结果:
ans =
x^4 - 5 x^3 - 19 x^2 + 29 x + 42
2.求一元高次方程的根。
P1=[1 -5 -30 150 273 -1365 -820 4100 576 -2880];
x1=roots(P1)
结果:
x1 =
5.0000
-4.0000
4.0000
-3.0000
3.0000
-2.0000
-1.0000
2.0000
1.0000
4.对比用多项式函数的polyder函数及符号函数中的diff函数,求导x2+2x+3。
a=[1 2 3] % x2+2x+3
polyder(a) %ans=2 2 2x+2
syms x;
f= x^2+2*x+3;
diff(f) %ans=2*x+2
5.求多项式 在点2、4、5的值
A=[1 3 -2 1];
>> polyval(A,[2 4 5])
ans =
17 105 191
6.计算 a(x)=2x3+4x2+6x+8, b(x)=3x2+6x+9的多项式相加(试着编写一个polyadd的函数,实现多项式相加的功能)
a=[2 4 6 8];
b=[0 3 6 9];
c=a+b
function y=polyadd(x1,x2)
n1=length(x1);
n2=length(x2);
if n1>n2
x2=[zeros(1,n1-n2),x2];
end
if n2>n1
x1=[zeros(1,n2-n1),x1];
end
y=x1+x2;
end
>> a=[2 4 6 8];
b=[0 3 6 9];
c=polyadd(a,b)
7.求多项式和的乘积;并求的商和余式。(conv() deconv())
f1=sym('x^3+3*x^2+5*x+7');
f2=sym('8*x^3-6*x^2+4*x-2');
f=f1*f2
collect(f)
(f-f1)/f2
collect(ans)
结果:
f =
(x^3+3*x^2+5*x+7)*(8*x^3-6*x^2+4*x-2)
f =
8*x^6+18*x^5+26*x^4+36*x^3-28*x^2+18*x-14
h =
(-21+8*x^6+18*x^5+26*x^4+35*x^3-31*x^2+13*x)/(8*x^3-6*x^2+4*x-2)
h =
(-21+8*x^6+18*x^5+26*x^4+35*x^3-31*x^2+13*x)/(8*x^3-6*x^2+4*x-2)
8.求的符号导数。
y='x^5+tan(4*x^2)+3';
>> diff(y)
ans =
-26 -41 -10 73 -19 13 -70 12 -10 78 -26 -44 -9 2 8
9.用符号运算求实验内容6中的的表达式。观察在不使用collect(f)函数以及使用后的结果。
三、设计提示
1.关于多项式运算的函数有poly、roots、diff、conv/deconv等。
2.多项式做加减运算时要注意等长度。
3.符号表达式的输入可以用字符串方式,也可以用sym函数, syms函数。
4.了解以下符号多项式函数
1. collect(f): 函数用途是合并多项式中相同的项,
syms x t
f=(1+x)*t+x*t;
collect(f)
2. expand(f):展开多项式,
syms x
f=x*(x*(x-1)+3)+2;
expand(f);
3. horner(f) 对转换多项式为Horner形式, 这种形式的特点是乘法嵌套, 其有着不错的数值计算性质.
syms x;
f=x^3+2*x^2+5*x-2
horner(f)
4. factor(f): 多项式的因式分解. 如果无法在有理数的范围内作分解, 那么返回的结果还是输入值.
syms x;
f=x^3-6*x^2+11*x-6;
factor(f)
5. simplify(f): 通过数学运算化简符号表达式
syms x;
f=cos(x)^2+sin(x)^2
simplify(f)
6. simple(f): 威力比较强大, 它会尝试各种办法来化简符号表达式, 其化简的标准是使得符号表达式的长度最短.
syms x
f=sin(x)^2+cos(x)^2;
simple(f)
7. subexpr(f): 通过计算机自动寻找, 将表达式中多次出现的因式用简短的符号表示, 返回的结果中包含替换之后的表达式, 以及被替换的因式.
syms x a;
f=solve(x^2+a*x-1);
r=subexpr(f);
8. pretty(f): 用"我们人能看到懂"的表示方法表示出符号表达式.
syms a x;
f=solve(x^2+a*x-1);
pretty(f);
实验六:线性时不变系统的时域响应
一、实验目的
1.掌握线性时不变系统的三种描述形式—传递函数描述法、零极点增益描述法、状态空间描述法。
2.掌握三种描述形式之间的转换。
3.掌握连续和离散系统频率响应的求解。
二、实验内容
1.生成20个点的单位脉冲信号、单位阶跃信号,并记录下函数命令和波形。
N=20;
x=zeros(1,N)
x(1)=1
stem(x)
x=ones(1,N)
stem(x)
2.生成f=50Hz占空比为40%,幅值为5的矩形波,生成f=50Hz的锯齿波。
F=10000
t=0:1/F:0.1;
f=50
x1=square(2*pi*f*t,40)
plot(t,x1)
x2=sawtooth(2*pi*f*t,0)
plot(t,x2)
3.将连续系统转化为传递函数的形式,并显示其表达式。
k=0.5;
z=[1,-3]';
p=[-1,-2,-4]';
zpk=zpk(z,p,k)
[b,a]=zp2tf(z,p,k);
tf=tf(b,a)
结果:
Zero/pole/gain:
0.5 (s-1) (s+3)
-----------------
(s+1) (s+2) (s+4)
Transfer function:
0.5 s^2 + s - 1.5
----------------------
s^3 + 7 s^2 + 14 s + 8
4.将离散系统转化为零极点增益的描述形式,并显示其表达式。
b=[3 5 2];
a=[1 -1.6 1.3 -.9 .5];
systf=tf(b,a,'variable','z^-1')
[z,p,k]=tf2zp(b,a);
syszpk=zpk(z,p,k,'variable','z^-1')
结果:
Transfer function:
3 + 5 z^-1 + 2 z^-2
---------------------------------------------
1 - 1.6 z^-1 + 1.3 z^-2 - 0.9 z^-3 + 0.5 z^-4
Sampling time: unspecified
Zero/pole/gain:
3 z^-2 (1+z^-1) (1+0.6667z^-1)
-------------------------------------------------------------
(1 - 1.685z^-1 + 0.8654z^-2) (1 + 0.08497z^-1 + 0.5778z^-2)
Sampling time: unspecified
5.分别求实验内容3和4的频率响应(对离散系统取256样点,采样频率取8000Hz)。
k=0.5;
z=[1,-3]';
p=[-1,-2,-4]';
[b,a]=zp2tf(z,p,k);
freqs(b,a)
结果:
b=[3 5 2];
a=[1 -1.6 1.3 -.9 .5];
freqz(b,a,256,8000) % Fs=8000
结果:
6.分别求实验内容3和4的单位冲激响应(对离散系统,作60样点图)。
k=0.5;
z=[1,-3]';
p=[-1,-2,-4]';
sys3=zpk(z,p,k);
impulse(sys3)
结果:
b=[3 5 2];
a=[1 -1.6 1.3 -.9 .5];
impz(b,a,60)
三、设计提示
1.显示传递函数模型用tf(b,a);显示零极点增益模型用zpk(z,p,k)。注意:z、p为列向量。
2.连续系统频率响应用freqs函数;离散系统用freqz函数。
3.连续系统冲激响应用impulse函数;离散系统用impz函数。
实验七:数字图像处理初步
一、实验目的
1.掌握图像文件的读取与写入。
2.掌握图像文件的显示、翻转、缩放、叠加
3.掌握黑白和彩色图像在Matlab中矩阵存储格式。
二、实验内容
1.读取greens.jpg到矩阵X中,去掉红色图层,然后显示出来。
X=imread('greens.jpg');
figure(1);
imshow(X);
Y=X;
Y(:,:,1)=0;
figure(2);
imshow(Y);
2.在一个子图中显示cameraman.tif'图片,在另一个子图中显示该图片灰度范围在[100,150]。
[B,map]=imread('cameraman.tif','tif');
subplot(121);
imshow(B,[100,150]); %灰度范围[0,255]
subplot(122);
imshow(B);
读取football.jpg到矩阵A中,观察A的维数,并显示该图像。([x,y,z]=size(A))
A=imread('football.jpg');
figure(1);
imshow(A);
[x,y,z]=size(A);
输入以下程序,观察结果,如果想把本题结果变为下图,应该怎么改动程序?
A=imread('football.jpg');
figure(1);
imshow(A);
[x,y,z]=size(A);
B=A;
B([x+1:2*x],:,1)=fliplr(A(:,:,1));
B([x+1:2*x],:,2)=fliplr(A(:,:,2));
B([x+1:2*x],:,3)=flipl
展开阅读全文