@[优化设计基础上机练习1]
函数M文件
编写具备以下功能的函数M文件,要求:
(1) 输入数据为随机数组的行数m和列数n,函数rand
(2) 随机数组命名为date,取m≥3,n≥4;
(3) 将随机数组date中≥0.5且≤0.6的元素依次存入数组result中,数组result预先定义为1行、m*n列的零数组,函数zeros,循环结束时将其他为零的元素清空;必须采用while、if、break、end等流程控制语句;
(4) 若存在满足上述条件的解(符合条件的元素个数大于等于1),则输出
字符 “输入数组date及date中≥0.5且≤0.6的元素分别为:”
数组date、result
(5) 若不存在满足上述条件的解(符合条件的元素个数等于0),则输出
字符 “输入数组date中无≥0.5且≤0.6的元素!”
参考源程序
function [date,result] = hw01(m,n)
%hw01.m 函数M文件上机编译
%result 输出值,随机数组date中大于等于0.5且小于等于0.6的元素,行阵格式
%m 输入值,随机数组date的行数,需大于等于3行
%n 输入值,随机数组date的列数,需大于等于4列
%要求:必须采用while、if、break、end等流程控制语句
date=rand(m,n); %生成m行n列的随机数组,命名为date
result=zeros(1,m*n); %生成1行m*n列的全零数组,命名为result
i=0; %符合条件的元素个数
k=1; %循环次数
while 1
if date(k)>=0.5&&date(k)<=0.6
result(i+1)=date(k);
i=i+1;
end
k=k+1;
if k>m*n
break
end
end
if i>=1 %输出结果处理及显示
str='输入数组date及date中≥0.5且≤0.6的元素分别为:';
disp(str);
result(i+1:m*n)=[];
else
str='输入数组date中无≥0.5且≤0.6的元素!';
disp(str);
result=[];
end
运行结果
[date,result] = hw01(5,5)
输入数组date及date中≥0.5且≤0.6的元素分别为:
date =
0.0967 0.6596 0.4538 0.1734 0.3993
0.8181 0.5186 0.4324 0.3909 0.5269
0.8175 0.9730 0.8253 0.8314 0.4168
0.7224 0.6490 0.0835 0.8034 0.6569
0.1499 0.8003 0.1332 0.0605 0.6280
result =
0.5186 0.5269
[date,result] = hw01(3,4)
输入数组date中无≥0.5且≤0.6的元素!
date =
0.2920 0.9841 0.3724 0.3395
0.4317 0.1672 0.1981 0.9516
0.0155 0.1062 0.4897 0.9203
result =
[]
报告格式
上机作业一
班级: 姓名: 学号:
编写具备以下功能的函数M文件,要求:
(1) 输入数据为随机数组的行数m和列数n,函数rand
(2) 随机数组命名为date,取m≥3,n≥4;
(3) 将随机数组date中≥0.5且≤0.6的元素依次存入数组result中,数组result预先定义为1行、m*n列的零数组,函数zeros,循环结束时将其他为零的元素清空;必须采用while、if、break、end等流程控制语句;
(4) 若存在满足上述条件的解(符合条件的元素个数大于等于1),则输出
字符 “输入数组date及date中≥0.5且≤0.6的元素分别为:”
数组date、result
(5) 若不存在满足上述条件的解(符合条件的元素个数等于0),则输出
字符 “输入数组date中无≥0.5且≤0.6的元素!”
数组date、result
一、 函数M文件源程序
function [date,result] = hw01(m,n)
。。。
二、 运行结果
[date,result] = hw01(3,4)
。。。