plot(t,y2,'b') axis([0,pi,-1,1])
3、答案
price=input('请输入商品价格'); switch fix(price/100)
case {0,1} %价格小于200 rate=0;
case {2,3,4} %价格大于等于200但小于500 rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100;
otherwise %价格大于等于5000 rate=14/100;
end
price=price*(1-rate) %输出商品实际销售价格
4、答案
function f=fab(n)
if (n==1) f = 1; elseif (n==2) f =2; else
f = fab(n-1) + fab(n-2);
end
5、答案 str1 = ''; str2 = ''; str3= ''; val = cell(5,2) a=zeros(5,1); ave = 0;
student = struct('Name',str1,'No',str2,'Scores',val,'Ave',ave); n = input('please input students number:'); for i=1 : n
str1 = input('Name:'); str2 = input('No.:'); %for k=1:2
% val(k,:) = input('Curriculums and Scores:'); % a(k,1)=val{k,2}; %end
%val(1,:) = input('Curriculum:');
%val(:,2) = input('Scores:');
val = input('please input five Curriculums and Scores:'); for k=1:5 a(k,1)=val{k,2}; end
student(i).Name = str1; student(i).No = str2; student(i).Scores = val; student(i).Ave = mean(a); end
for ii= 1:(length(student)-1) iptr = ii;
for jj=ii+1 : length(student)
if (student(jj).Ave > student(iptr).Ave) iptr = jj; end end
if ii ~=iptr temp = student(ii); student(ii) =student(iptr); student(iptr) = temp; end end
for ii=1 : length(student) if student(ii).Ave > 80 disp(student(ii).Name); disp(student(ii).Ave); end end
disp(['student name',blanks(6),'student no.',blanks(6),'student average']);disp(' ') for ii=1 : length(student)
disp([student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).Ave)]); end
一、填空题(每空2分,总共30分) 1. 已知A=[0 9 6;1 3 0];B=[1 4 3;1 5 0];写出下列各指令运行的结果。 A & B 的运行结果ans= ; A ./ B 的运行结果ans= 。 2. 产生4阶全0方阵的命令为 zeros(4) ;产生3阶全1方阵的命令为 ones(3) 。 3. A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为 和 [2,5],[5] 。 4. 标点符号 分号 可以使命令行不显示运算结果, 百分号 用来表示该行为注释行。 5. 用if判断语句判断80≥ x >60,在MATLAB中if语言后的判断应写为 if x<=80&x>60 。
6. P, Q分别是个多项式的系数矢量,求P对应的多项式的积分(对应的常数项为K),使用的命令是 polyint(P,K) ;求P/Q的解,商和余数分别保存在k和r,使用的命令是 [k,r]=deconv(P,Q) ; 7. 为了使两个plot的图形在同一个坐标显示,可以使用 hold on 命令进行图形保持;可以使用 grid on 命令为图形添加网格。 8. MATLAB的工作空间中有三个变量v1, v2, v3,写出把它们保存到文件my_data.mat中的指令 save my_data ;写出把my_data.mat文件中的变量读取到MATLAB工作空间内的指令 load my_data 。 二、选择题(每空2分,总共20分) 1.下列哪个变量的定义是不合法的 A (A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz 2. 下列哪条指令是求矩阵的行列式的值 C (A) inv (B) diag (C) det (D) eig 3. 在循环结构中跳出循环,执行循环后面代码的命令为 B (A) return (B) break (C) continue (D) keyboard 4. 清空Matlab工作空间内所有变量的指令是 C (A) clc (B) cls (C) clear (D) clf 5. 用round函数四舍五入对数组[2.48 6.39 3.93 8.52]取整,结果为 C (A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9] 6. 已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为 C (A) a'*b (B) a .*b (C) a*b (D) a-b 7. 角度x??304560?,计算其正弦函数的运算为 D (A) SIN(deg2rad(x)) (B) SIN(x) (C) sin(x) (D) sin(deg2rad(x)) 8. 下面的程序执行后array的值为 ( A ) for k=1:10 if k>6 break; else array(k) = k; end end (A) array = [1, 2, 3, 4, 5, 6] (B) array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (C) array =6 (D) array =10. 9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c的值分别是多少? (A)a=4, b=4, c=2.0000i (C) (B)a=4, b=2.0000i, c=2.0000i (C)a=2.0000i, b=4, c=2.0000i (D) a=2.0000i, b=2.0000i, c=2.0000i 10. 求解方程x-4x+12x-9 = 0 的所有解 (A)1.0000, 3.0000, 1.7321, -1.7321 (B)1.0000, 3.0000, 1.7321i, -1.7321i (C)1.0000i, 3.0000i, 1.7321, -1.7321 (D)-3.0000i, 3.0000i, 1.7321, -1.7321
43 三、写出程序的执行结果或写出给定要求的指令(总共35分) 1. 写出执行以下代码后C,D,E的值 (6分) A=[1,2,3;4:6;7:9]; C=[A;[10,11,12]], D=C(1:3,[2 3]) E=C(2,[1 2]) 2. 写出执行以下代码后,MATLAB命令窗口上显示的x矩阵的值 (5分) x=[0,1,0,2,0,3,0,4]; for k=1:8 if x(k)==0 x(k)=k; else x(k)=2*k+1; end end disp(x); 3. 创建符号函数并求解,要求写出步骤和运行结果(7分) 2(1)创建符号函数f=ax+bx+c (2)求f=0的解 4. 求解以下线性方程组,要求写出程序代码和运行结果(5分) 5.绘制函数曲线,要求写出程序代码(12分) (1)在区间[0:2π]均匀的取50个点,构成向量π (2)在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号 四、使用MATLAB语言进行编程(15分) 打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。 2x1- 3x2+ x3+2x4=8 x1+3x2+ x4=6 x1- x2+ x3+8x4=17x1+ x2-2x3+2x4=5