【Matlab作业】MATLAB程序设计

简介: 【Matlab作业】MATLAB程序设计

1.程序流程控制结构


(1) for 循环结构


【思考】


(1)下列程序的运行结果:j1=?j2=?% sk1.m


a=1:4; 
b=a'; 
j1=0; 
for i=a 
  j1=j1+1; 
end; 
j2=0; 
for i=b 
  j2=j2+1; 
end;


答:运行结果:j1 = 4, j2 = 1。


(2)分析下列程序的功能和运行结果 % sk2.m


data(:,:,1)=[3 9 45 6; 7 16 -1 5]; 
data(:,:,2)=[1 2 3 4; 8 7 6 5]; 
data 
k=0; 
for n=data 
  n
  k=k+1;
  x=n(1)-n(2) 
end 
k


答:

程序功能:遍历每一列,计算每列第一行和第二行元素差值;

运行结果:x = -1, k = 8。


(2) while 循环结构


【思考】


(1)while 循环与for 循环的区别是什么?

答:for循环一般用于循环次数已知的情况下;

while 循环一般用于满足条件已知的情况下。


(2) 从键盘输入若干个数,当输入0时结束输入,求这些数的总和及其平均值。% sk3.m

答:


data = [];
num = input('pls input a number:   ');
while(isempty(num) || num ~= 0)
    data = [data num];
    num = input('pls input a number:   ');
end
sum(data)
mean(data)



【练习】


(1) 请把 exp2.m 函数文件用 while 循环改写。

答:


function s=exp2(x) 
s = 0; 
n = 1;
while n<=x
    s=s+n; 
    n=n+1;
end



(2) 用 π /4≈1-1/3+1/5-1/7+…公式求 π 的近似值,直到最后一项的绝对值小于 10-6 为止,试编写其 M 脚本文件。

答:


sum = 1; 
n = 1;
k = 1;
while k*(-1)^(n+1)>10^(-6)
    k = -(2*n-1)/(2*n+1)*k
    sum = sum + k;
    n = n+1;
end  
pai = sum * 4


循环时间稍微有点久,可以按 ctrl + c 停止



(3) if-else-end 分支结构


【思考】


输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。% sk4.m


ch = input('pls input:  ')
num= abs(ch)
if ch > 'A' && ch < 'Z'
    num = num + 1
elseif ch > 'a' && ch < 'z'
    num = num - 1
end
char(num)






(4) switch-case 结构


【思考与练习】


PM2.5 是指大气中直径小于或等于2.5微米的可吸入颗粒物,是衡量空气质量的重要指标。假定空气质量等级

以 PM2.5 数值划分为6级。

PM2.5数值在[0,35)空气质量为优;[35,75)为良,[75,115)为轻度污染;[115,150)为中度污

染;[150,250)为重度污染,大于等于250为严重污染。

编写程序,输入PM2.5数值,输出空气质量等级。

(1)用6个单分支结构实现

答:


pm = input('pls input:  ');
% 方法1:6个单分支结构
if pm>=0 && pm<35
    disp('空气质量为优');
end
if pm>=35 && pm<75
    disp('空气质量为良');
end
if pm>=75 && pm<115
    disp('空气质量为轻度污染');
end
if pm>=115 && pm<150
    disp('空气质量为中度污染');
end
if pm>=150 && pm<250
    disp('空气质量为重度污染');
end
if pm>=250 
    disp('空气质量为严重污染');
end



(2)用多分支if语句实现


pm = input('pls input:  ');
% 方法2:多分支if结构
if pm>=0 && pm<35
    disp('空气质量为优');
elseif pm>=35 && pm<75
    disp('空气质量为良');
elseif pm>=75 && pm<115
    disp('空气质量为轻度污染');
elseif pm>=115 && pm<150
    disp('空气质量为中度污染');
elseif pm>=150 && pm<250
    disp('空气质量为重度污染');
elseif pm>=250 
    disp('空气质量为严重污染');
end



(3)用switch语句执行


pm = input('pls input:  ');
% 方法3:switch结构
switch pm
    case num2cell(0: 35)
        disp('空气质量为优');
    case num2cell(35: 75)
        disp('空气质量为良');
    case num2cell(75: 115)
        disp('空气质量为轻度污染');
    case num2cell(115: 150)
        disp('空气质量为中度污染');
    case num2cell(150: 250)
        disp('空气质量为重度污染');
    otherwise
        disp('空气质量为严重污染');
end



2.子函数和参数传递


【练习】

(1) 编写求矩形面积函数 rect,当没有输入参数时,显示提示信息;当只输入一个参数时,则以该参数作为正方形的边长计算其面积;当有两个参数时,则以这两个参数为长和宽计算其面积。

答:


function area = rect(x, y)
if nargin>2 
    error('too many input') 
end 
if nargin==1 
    area = x*x;
else
    area = x*y;
end



(2) 编写一个字符串加密函数 nch=my_code( ch , x),其中 ch 是字符串参数,x 为整数;加密方法是:把 ch 的每一个字符的 ASCII 码值加上 x,得到的即为加密后的新的字符串 nch。由于可显示 ASCII 码值是有范围的(32,126),因此当得到的 ASCII码值大于 126 时,需要减去 93 。同理,再编写一个解码函数 nch=my_dcode( ch , x)。

提示:char(32:126) 可获得 ASCII 码值为 32~126 的字符。

答:


function nch=my_code(ch , x)
num = abs(ch);
num = num + x;
if num > 126
    num = num - 93;
end
char(num)



function nch=my_dcode(ch , x) 
num = abs(ch);
num = num - x;
if num < 32
    num = num + 93;
end
char(num)



相关文章
|
4天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
计算机视觉
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
简介:第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
|
算法 Serverless
【MATLAB第17期】基于MATLAB的音频数字处理系统设计,含GUI和报告(数字信号课程作业)
【MATLAB第17期】基于MATLAB的音频数字处理系统设计,含GUI和报告(数字信号课程作业)
【MATLAB第17期】基于MATLAB的音频数字处理系统设计,含GUI和报告(数字信号课程作业)
|
机器学习/深度学习 算法 调度
【车间调度】基于卷积神经网络的柔性作业车间调度问题的两阶段算法(Matlab代码实现)
【车间调度】基于卷积神经网络的柔性作业车间调度问题的两阶段算法(Matlab代码实现)
194 0
|
机器学习/深度学习 传感器 算法
【优化布局】基于遗传算法求解作业车间布局最小成本设计优化问题附matlab代码
【优化布局】基于遗传算法求解作业车间布局最小成本设计优化问题附matlab代码
|
C语言
MATLAB结构化程序设计(四)
MATLAB结构化程序设计(四)
108 0
MATLAB程序设计基础(三)
MATLAB程序设计基础(三)
131 0
|
算法
m基于PSO粒子群优化的第四方物流的作业整合算法matlab仿真,对比有代理人和无代理人两种模式下最低运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
m基于PSO粒子群优化的第四方物流的作业整合算法matlab仿真,对比有代理人和无代理人两种模式下最低运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
131 1
m基于PSO粒子群优化的第四方物流的作业整合算法matlab仿真,对比有代理人和无代理人两种模式下最低运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
|
机器学习/深度学习 存储 算法
MATLAB数字图像处理 大作业:人脸表情识别
MATLAB数字图像处理 大作业:人脸表情识别
494 0
MATLAB数字图像处理 大作业:人脸表情识别
二样本感知器的matlab程序设计
二样本感知器的matlab程序设计
96 0