MATLAB实验:运算基础,并且附有答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二、MATLAB运算基础
一、实验目的
掌握MATLAB各种表达式的书写规则及常用函数的使用。
掌握MATLAB中字符串、元胞数组和结构的常用函数的使用。
二、实验内容及步骤
1、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17
18 19 20;21 22 23 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13
11]
1)求它们的乘积C >>C=A*B
2)将矩阵C的右下角3x2子矩阵赋给
D >>I=[3 4 5];J=[2 3];D=C(I,J)也可以
用>>D=C([3 4 5],[2 3])
D =
520 397
705 557
890 717
2、完成下列操作
1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length函数。)
>> a=100:999;find(rem(a,61)==0)
ans =
23 84 145 206 267 328 389 450 511
572 633 694 755 816 877
>> b=a(ans)
b =
122 183 244 305 366 427 488 549 610 671 732 793 854 915 976
>> length(b)
ans =
15
2)建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空矩阵。)a=’I am maying’;
a( find(a>’A’&a<’Z’))=[]
3、已知A=[23 10 -78 0;41 -45 65 5;32 5 0 32;
6 -54 92 14],取出其前3行构成矩阵B,其前两列构成
矩阵C,其左下角3x2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E >>B=A([1 2 3 ],:)>> C=A(:,[1 2])>> D=A([2 3 4 ],[1 2 ])>> E=B*C >> E ans = 1 1 0 0 0 1 >> E&D ans = 1 1 1 1 1 1 >> E|D ans = 1 1 1 1 1 1 >> ~E|~D ans = 0 0 0 0 0 0 4、使用函数,实现矩阵左旋90°或右旋90°的功能>>rot90(A,1) 代表左旋90度 5、写出使以下这段文字成为字符串的MA TLAB指令。注意保持 这段文字的格式: 在英式用法中,引号通常是单引号,如'Fire!'。 In GB usage quotation marks are usually single: 'fire!'. >> a='在英式用法中,引号通常是单引号,如''Fire!''。' a = 在英式用法中,引号通常是单引号,如'Fire!'。 >> b='In GB usage quotation marks are usually single: ''fire!''. ' b = In GB usage quotation marks are usually single: 'fire!'. >>strvcat(a,b) %strvcat代表垂直拼接 ans = 在英式用法中,引号通常是单引号,如'Fire!'。 In GB usage quotation marks are usually single: 'fire!' 6. 用结构体数组来存储2名学生的基本情况数据,每名学生 的数据包括学号、姓名、专业和2门课程的成绩。 >> student=struct('xuehao',{000,001},'xingming',{'deni ','sherry'},'zhuanye',{'math','english'},'chengji',{'math:87,english:9 0','math:86,english:92'}) student = 1x2 struct array with fields: xuehao xingming zhuanye chengji >> student(1) ans = xuehao: 0 xingming: 'deni ' zhuanye: 'math' chengji: 'math:87,english:90' >> student(2) ans = xuehao: 1 xingming: 'sherry' zhuanye: 'english' chengji: 'math:86,english:92' 7求S=20+21+22+23+24+……+210的值(提示:利用求和函数与累乘积函数。)方法一>> a=[1 2 2 2 2 2 2 2 2 2 2];c=cumprod(a) c = 1 2 4 8 16 32 64 128 256 512 1024 >> sum(c) ans = 2047 方法二>> a=0:10; >> b=2.^a b = Columns 1 through 9 1 2 4 8 16 32 64 128 256 Columns 10 through 11 512 1024 >> c=sum(b) c = 2047 8建立矩阵A并回答有关问题 A{1,1}=1; A{1,2}='Brenden'; A{2,1}=reshape(1:9,3,3); A{2,2}={12,34,2;54,21,3;4,23,67}; 1)使用访问的方式如何将Brenden改写成BRENDEN?