第五章习题
1.读取一副图像,如果是彩色图则转化为灰度图;对得到的灰度图做如下处理: (1)将灰度值大于200的像素值全部设置为200; (2)将灰度值小于100的像素值全部设置为100;
(3)比较原图和经过步骤(1)和(2)处理后得到的图的差异 答:
%%原图的读入 clc;
clear all; close all;
I=imread('tulip.jpg'); subplot(1,3,1);
imshow(I); title('原图')
%%灰度图的保存与显示 I_gray=rgb2gray(I);
imwrite(I_gray,'1_gray.bmp', 'bmp'); subplot(1,3,2); imshow(I_gray); title('灰度图')
%%变换后的灰度图 I1=I_gray;
I1(I_gray>200)=200; I1(I_gray<100)=100; subplot(1,3,3); imshow(I1);
title('变换后的图')
改变后,图像由彩色变成灰色,色彩较为单一,且变得不是那么清晰。
2.将如下字符串中的大写字符转换为小写,小写转换为大写。 Matlab is a useful soft. It is well used in many Areas. 答: clc;
clear all; close all;
a='Matlab is a useful soft. It is well used in many Areas.'; b=double(a);
c=find(a>='a'&a<='z'); d=find(a>='A'&a<='Z'); b(c)=b(c)-32; b(d)=b(d)+32; char(b)
ans =
mATLAB IS A USEFUL SOFT. iT IS WELL USED IN MANY aREAS.
3.score.txt文件中记录了某个班级的同学的期末成绩,编写程序读取该文件的内容,实现如下功能:
(1)统计90以上学生的人数,输出90分以上学生的名单。
(2)统计不及格的学生的人数,输出其名单(及格分数为60分或以上)。 (3)画出全体同学的分数分布的统计直方图。 答:
%%数据输入模块 clc;
clear all; close all;
ST=importdata('score.txt'); s1=ST.data; s2=ST.textdata; %%
%%统计90分以上的人数 x=0; X=[]; for i=1:20
if s1(i)>90
X=[X;s2(i+1,3)]; x=x+1; end end %%
%%统计60分一下的人 y=0; Y=[];
for i=1:20
if s1(i)<60
Y=[Y;s2(i+1,3)]; y=y+1; end end %%
%%显示模块
disp('90分以上的人有:') disp(x) disp(X)
disp('60分以下的人有:') disp(y) disp(Y) hist(s1')
xlabel('分数'); ylabel('人数'); >>
90分以上的人有: 6 '地方' '供货' '打分' '统一' '明天' '不同'
60分以下的人有: 5 '帮你' '该行' '回顾' '如果'
'他人'
4.编程实现剪刀石头布的游戏:
(1)程序开始,屏幕自动提示用户输入剪刀、石头、布中的一种;
(2)用户输入后,电脑随机的出“剪刀、石头、布”中的一种,并显示在屏幕上;
(3)电脑给出游戏的胜负,然后提示用户是否继续玩该游戏:如果用户输入yes,则继续,若输入no则退出。 答: %%
%该模块实现石头剪刀布的功能,石头剪刀布由用户输入,电脑实际出,然后判断输赢,然后根据
%用户判断是否继续,根据用户判断进行下一步的操作 clc;
clear all; close all; n=1;
while n==1 a=0;
b='石头、剪刀、布 ';
you=input('请选择,石头(1),剪刀(2),布(3): '); while you~=1&you~=2&you~=3 disp('输入错误,请重新输入: ');
you=input('请做出你的选择,石头(1),剪刀(2),布(3): '); end
disp('您的选择是: '); disp(b(2*you-1:2*you)); compute=ceil(3*rand(1,1)); disp('电脑的选择是:');
disp(b(2*compute-1:2*compute)); %%
%%输赢判断模块
%如果电脑与选手出的一样,则显示平手,否则根据石头剪刀布的规则来判断输赢 if you==compute disp('平手'); end
switch(you-compute) case{1,-2}
disp('您输了'); case{-1,2}
disp('您赢了'); end %%
%是否继续判别模块
n=input('是否继续玩该游戏?否(0),是(1)'); while n~=0&n~=1
disp('您输入的不是正确数字,请正确输入'); n=input('是否继续玩该游戏?否(0),是(1)'); end end >>
请选择,石头(1),剪刀(2),布(3): 1 您的选择是: 石头
电脑的选择是: 、剪 您赢了
是否继续玩该游戏?否(0),是(1)1 请选择,石头(1),剪刀(2),布(3): 2 您的选择是: 、剪
电脑的选择是: 石头 您输了
是否继续玩该游戏?否(0),是(1)0 >>
5.编写一个日程提醒程序实现如下功能:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库MATLAB基础习题第五章习题答案在线全文阅读。
相关推荐: