资源描述:
《Matlab与机电系统仿真(六)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab与机电系统仿真(六)---稀疏矩阵、细胞数组、结构数组一个永远不会平衡的天平DESIREOBTAIN6.1稀疏矩阵6.1稀疏矩阵Matlab能创建的最大矩阵:a=eye(11108);矩阵的存储:零元素和非零元素。稀疏矩阵:只存储非零元素。b=sparse(a);6.1稀疏矩阵稀疏矩阵的建立:y=sparse([i1,i2,i3,…,in],[j1,j2,j3,…,jn],[e1,e2,e3,…,en]);其它:speye,sprand,sprandn,…转换:普通矩阵稀疏矩阵:x=sparse(a);稀疏矩阵普通矩阵:b=full(y);6.1稀疏矩阵查看稀
2、疏矩阵:nnz(a);%返回非零元素的个数;nonzeros(a);%返回一个包含非所有零元素的列向量;spy(a);%查看非零元素分布图;6.2细胞数组Cell1,1Cell1,2Cell2,1Cell2,2130024168‘Thisisastring’2+3i,-49i,7+1i[]6.2细胞数组的建立元素赋值:a{1,2}=[123;456];%对细胞数组的元素直接赋值cell函数:a=cell(2,3);%建立一个2x3的细胞数组采用{}:a={[123;456],’hello!’;[],4+3i};%直接给变量赋值6.2细胞矩阵细胞数组的显示:a%显示细胞数组的结
3、构celldisp(a)%显示细胞数组的详细内容细胞数组的删除:cleara%删除整个细胞变量a{1,2}=[]%删除细胞变量中的元素6.2细胞数组a={[12;34],’dog’;’cat‘,i};a{1,2}%显示细胞数组的元素;a{1,1}(2,1)%显示细胞数组的元素的元素6.2细胞数组一般函数:function[out_1,out_2,out_3]=testfun(in_1,in_2,in_3,in_4)out_1=in_1+1;out_2=in_2+1;out_3=in_3+1;参数数量可变函数:functionvarargout=testfun(varargin
4、)forn=1:nargoutvarargout{n}=varargin{n}+1;end6.3结构数组普通数组:有一个名字,元素类型必须相同,元素用名字(数字)表示;细胞数组:有一个名字,元素的类型可以不同,元素用名字{数字}表示;结构数组:每个元素都有一个名字,元素类型可以不同,元素用数组名.域名表示。studentnamejobagebirth6.3结构数组创建结构数组:赋值student.name=‘john’;student.age=22;student.favor=basketball;2.函数student=struct(‘name’,’john’,’age’,
5、22,’favor’,’basketball’);创建新域:student.phone=18710924868;删除域:newstudent=rmfield(student,’age’);6.3结构数组6.3结构数组结构数组的扩展:student=struct(‘name’,’john’,’age’,22,’favor’,’basketball’);student(2).name=‘tom’;student(3).name=‘bruce’;student(4).name=‘rose’;6.3结构数组数据的使用:student(2).agestudent(3).birth(3)
6、student(1).favor(4)student(2)student(3)student(1)namefavoragebirthjohnpingpang22[19891103]namefavoragebirthtombasketball23[19880612]namefavoragebirthbrucepingpang20[19911103]student6.3结构数组getfield和setfield:example=getfield(student,{1},’name’,{2:4});example=student(1).name(2:4);example=setfi
7、eld(student,{1},’name’,’rice’);student(1).name=‘rice’;练习:建立一个2x2的细胞数组,其中元素分别是一个矩阵、一个复数、一个字符串、一个空集建立一个结构数组,以自己的名字命名,域:name,id(学号),age,phone,birthday感谢大家!