实验目的
1)熟悉MATLAB程序编辑与设计环境;
2)掌握各种编程语言语法规则及程序设计方法;
3)熟悉函数文件的编写与设计;
4)了解和熟悉跨空间变量传递和赋值。
实验要求
1)实验前,要认真预习实验任务,了解实验目的和实验内容;
2)实验时,每题要编写程序代码形成独立的M文件,并调试程序使其能正确运行;
3)实验后,按要求编写实验报告,源程序要有适当的注释,以提高程序的可读性。
2-1)、编写脚本M文件,实现对下图矩阵指定区域的访问。要求将原矩阵赋给变量A,绿色区域矩阵为B,粉色区域矩阵为C,黄色区域矩阵为D。
A=[4 10 1 6 2; 8 2 9 4 7;7 5 7 1 5; 0 3 4 5 8]
B=A(5) %矩阵A中第5个元素
C=A([2:4],[2:3]) %矩阵A中2到4行与2到3列组成C
D=A(:,end) %最后一列
实验结果为:
function y = func(x)
% 求解表达式
% 注意:x是矩阵,所以用 点乘 点除 点乘方
y = 1 ./ ( (x-2).^2 + 0.1 ) + 1 ./ ( (x-3).^4 + 0.01 );
end
% 调用
x=rand(2,2);
a=func(x)
function [avg,med]=star(u) %主函数,avg,med分别为均值与中值
n=length(u); %长度
avg=mean(u,n); %平均值
med=median(u,n);%中值
function a=mean(v,n) % 子函数,计算均值
a=sum(v)/n;
function m=median(v,n) %子函数,计算中值
w=sort(v); %sort函数:按升序或降序对数组元素排序\n
if rem(n,2)==1 %rem函数 :求除法的后余数
m=w((n+1)/2)
else
m=(w(n/2)+w(n/2+1))/2;
end
% 调用
A=[1 2 3 4 5 6 7 8 9 10];
[avg,med]=star(A) %均值与中值
function [V,s]=f(v0,a,t)
V=v0+a*t;
s=v0*t+1/2*a*t^2;
end
% 调用
[V,s]=f(2,4,5) %速度与路程
实验总结
第1题要进行编写脚本M文件,这是最基本的进行代码的要求,矩阵运算也很基础。第2题开始去调用函数,有一个细节是对一个矩阵,上一章那个’.’运算非常重要,如果非常牢固,这个题应该没啥问题。第34题有前面的基础,写没啥问题。当时写第2题的时候,第一次写我没写出来,后面就去慢慢学习,最终写出来了。对于一个追求,最终是坚持去做,这个过程真的很享受。这一章对程序要求很高,有利于提高程序编写能力。