1、实验目的:
1)熟悉MATLAB程序编辑与设计环境;
2)掌握各种编程语言语法规则及程序设计方法;
3)熟悉函数文件的编写与设计;
4)了解和熟悉跨空间变量传递和赋值。
实验要求:
1)实验前,要认真预习实验任务,了解实验目的和实验内容;
2)实验时,每题要编写程序代码形成独立的M文件,并调试程序使其能正确运行;
3)实验后,按要求编写实验报告,源程序要有适当的注释,以提高程序的可读性。
2、实验内容
2-1)、编写脚本M文件,实现对下图矩阵指定区域的访问。要求将原矩阵赋给变量A,绿色区域矩阵为B,粉色区域矩阵为C,黄色区域矩阵为D。
1. A = [4 10 1 6 2; 8 2 9 4 7;7 5 7 1 5; 0 3 4 5 8]; 2. B = A(5) 3. C = A([2:4],[2 3]) 4. D = A(:,end)
新建一个M函数文件,输入函数表达式,代码如下:
1. function y = func(x) 2. % 求解表达式 3. % 注意:x是矩阵,所以用 点乘 点除 点乘方!!!!!! 4. y = 1 ./ ( (x-2).^2 + 0.1 ) + 1 ./ ( (x-3).^4 + 0.01 ); 5. 6. end
命令文件中调用如下代码
1. x = rand(2, 2) 2. a = func(x)
效果如下:
2-3)、编写求向量均值和中值的程序,并求出向量A=[1,2,3,4,5,6,7,8,9,10]的均值和中值。
编写M函数文件
1. function [average, med] = junzhizhongzhi(u) %主函数 2. %junzhizhongzhi使用内部函数求均值和中值 3. n = length(u); %长度 4. average = mean(u, n); %平均值 5. med = median(u, n); %中值 6. 7. function a = mean(v,n) %子函数,计算均值 8. a = sum(v) / n; 9. function m = median(v, n) %子函数,计算中值 10. w = sort(v); %sort函数:按升序或降序对数组元素排序 11. if rem(n,2)==1 %rem函数 :求除法的后余数 12. m = w((n+1)/2); 13. else 14. m = (w(n/2)+w(n/2+1))/2; 15. end
调用函数
1. A=[1,2,3,4,5,6,7,8,9,10]; 2. [zhongzhi, junzhi__] = junzhizhongzhi(A) %[均值, 中值]
运行结果如下:
2-4)、已知一作匀速直线运动的物体的初速度v0,加速度a,求任意时刻t的速度和位移。要求构建函数f,并在命令窗口调用该函数求在v0=2、a=4、t=5时,物体的速度和移动的距离。
注:速度公式 v = v0+at , 位移公式 x = v0*t+1/2*a*t*t
代码如下:
1. function [v, x] = V_S(v0, a, t) 2. %构建函数f,输入初速度V0,加速度a,任意时刻t,求解速度和位移 3. v = v0 + a*t; 4. x = v0*t + 1/2*a*t*t; 5. end
[v,x] = V_S(2, 4, 5) %调用函数