第一题
目的:
1) 学会使用矩阵和向量的思维方式来考虑问题。这是因为Matlab以该种方式组织数据,通
过这种方式,一个复杂运算在选择了合适的函数和数据组织方式基础上,往往可以通过1~2行代码解决。
2) 学会和习惯使用help来学习新的函数用法。需要用到的函数本文在题目后面标出。
题目说明:问题1-7请新建一个脚本,命名为shortProblems.m,7道小题目之间以注释隔开。 B303
1.标量变量生成,请生成如下变量:
1)a?102)b?2.5?10233)c?2?3(ii表示复数虚部)
2.向量生成,请生成如下向量变量:
/34)d?ej2?(j表示复数虚部,用到exp和pi)1)aVec??3.1415926??2.71??8??2)bVec???28???182??3)cVec??54.8...?4.8?5?(5~?5.步长为-0.2)4)dVec?[100100.01...100.99101](1~10确保length正确,用到logsapce)5)eVec?Hello(一个字符串)
3.矩阵变量,请生成如下矩阵变量:
?2...2??(9?9,值为2,用到ones或者zeros)1)aMat?????2??2?0??10...?0?0???(9?9,对角值为[1 2 3 4 5 4 3 2 1],其余值为0,用到diag)2)bMat=?050??00???01??0??111...91??212?92?(10?10,1:100,用到reshape)3)cMat??????1020100???NaNNaNNaNNaN??(3?4,用到nan)4)dMat??NaNNaNNaNNaN????NaNNaNNaNNaN???13?15?5)eMat?????2210?87?6)fMat,一个5?3矩阵,元素值为随机正数,值的范围为-3~3,使用rand,floor或者ceil
4.标量方程,使用题目1中生成的变量计算x,y和z值:
1)x?11?e(?(a?15)/6)g2)y?(a?21b)?(记得吗?h=h1/g,使用sqrt)log(?[(c?d)(c?d)]sin(a?/3))3)z=(?表示复数的实部,c表示c的共轭,使用real,conj,log)cc
5.向量方程计算,使用题目2中生成的变量求解以下方程的值。使用元素对应法则,.*,./,.^。
1)xVec=12?2.52e?cVec2/(2?2.52)2)yVec?(aVecT)2?bVec2(aVecT表转置)3)zVec?log10(1/dVec)(log10表示以10为底的对数,使用log10)
6.矩阵运算,使用题目2和3中生成的变量求解以下方程:
1)xMat?(aVec?bVec)?aMat22)yMat?bVec?aVec(注意结果不同于aVec?bVec)3)zMat?cMat(aMat?bMat)T(cMat表示求cMat的行列式,用到det)
7.一般运算及元素索引
1)按列规则计算cMat的cSum,结果应为一个行向量,使用sum2)按行计算eMat的平均eMean,结果为一个列向量,使用mean3)将eMat的第一行值替换为?111?4)将cMat的第2行~9行和第2列~9列提出,赋给cSub5)已知一个向量为lin=?12...20?,将其中的偶数项变为负值得到lin=?1-23-4将这些值置为0-20?6)使用rand生成一个1?5的向量,记为r,使用find找到其中值小于0.5的,并
shortProblem
clear all; a=10;
b=2.5*10^23; c=2+3*i;
d=exp((j*2*pi)/3);
%%%%%%%%%%%%%%%%%%%%%% aVec=[3.14 15 9 26]; bVec=ceil[2.71 8 28 182]; cVec=length[5 -0.2 5]; dVec=logspace[0 1 101]; eVec='Hello';
%%%%%%%%%%%%%%%%%%%%%%%% n=ones(9) aMat=n*2 bMat=zeros(9)
diag([1 2 3 4 5 4 3 2 1]) cMat=reshape(p,10,10) dMat=nan(3 4)
eMat=[13 -1 5;-22 10 -87] fMat=round(rand(5,3)*6)-3
%%%%%%%%%%%%%%%%%%%%%%%%%%% x=1/(exp(-(a-15)/6)) y=(a^(1/2)+b^(1/21))^pi
z=(log(real[(c+d)*(c-d)]*sin(a*pi/3))/( conj*con(-j))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% xVec=(1/((2*pi*2.5^2)^0.5))*exp((-cVec^2)/(2*2.5^2)) yVec=((aVec')^2+b*Vec^2)^0.5 zVec=log10(1/dVec)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% xMat=(aVec*bVec)*aMat^2 yMat=bMat*aMat
zMat=det(cMat)*(aMat*bMat)'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sum=cSum(cMat) mean=eMean(eMat)' eMat=[1 1 1;-22 10 -87] cSub=cMat([2 9;9 2]) lin=[1 1 20]
lin=-1*lin[2 2 20] find=(r(1 5)<0.5) find=0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8.绘制曲线练习
1)新建一个脚本,命名为twoLinePlot.m2)使用figure打开一个绘图窗口3)绘制正弦和余弦一个周期的曲线a.时间向量t为0~2?,自行定义点数以确保采样点足够,曲线才能够平滑b.绘制sin(t)c.使用hold on命令,这会告诉figure不要丢弃之前绘制的曲线,同样可以使用hold off来关闭hold属性d.绘制cos(t),使用红色,dashed线样式4)添加labelsa.xlabel,ylabelb.使用title给figure一个标题c.使用legend,注明两条曲线各自的名称5)使用xlim和ylim使得曲线看起来更漂亮,xlim设置x轴标度为0~2?,ylim设置y轴标度为-1.4~1.46)运行该脚本结果参考下图:
Sin and Cos SinCos10.5Function value0-0.5-1 0123Time(s)456
twoLinePlot
figure
t1=0:0.01:2*pi; y1=sin(t1); plot(t1,y1); axis([0 6 -1 1])
line([0 6],[0 0],'color','k') line([0 0],[-1 1],'color','k')
xlabel('Time(s)'),ylabel('Function value'); title(['Sin and Cos']) legend('sin','cos',0) hold on;
%%%%%%%%%%%%%%%%%%%%%%%%% t1=0:0.01:2*pi; y2=cos(t1); plot(t1,y2,'r--') axis([0 6 -1 1])
line([0 6],[0 0],'color','k') line([0 0],[-1 1],'color','k')
xlabel('Time(s)'),ylabel('Function value'); title(['Sin and Cos']) legend('sin','cos',0) hold off;