matlab 中的结构体描述方法

作者在 2009-09-13 10:31:38 发布以下内容
a=struct('x',[1 2 ; 6 3],'str',{{'wupeng','huaqiao';[12 3 6;23 6 5],'yucong'}})与
a=struct('x',[1 2 ; 6 3],'str',{'wupeng','huaqiao';[12 3 6;23 6 5],'yucong'})的区别

第一句:
a=struct('x',[1 2 ; 6 3],'str',{{'wupeng','huaqiao';[12 3 6;23 6 5],'yucong'}})

该语句创建一个1x1结构体数组a,包括域 x 和 str。
其中,x域中仅有一个2x2 double矩阵;在str域中,为1个2x2 的cell,两重{{ }}就是将
'wupeng','huaqiao';[12 3 6;23 6 5],'yucong' 宣明为一个 2x2 cell的内容。

第二句:
a=struct('x',[1 2 ; 6 3],'str',{'wupeng','huaqiao';[12 3 6;23 6 5],'yucong'})

该语句创建了一个2x2结构体数组,同样包括域 x 和 str。
其中,x域中为2x2 double矩阵;而在str域中,为2x2的结构体,也就是说,这个构建
结构体的语句,单重括号表示其括起来的是'str'域内的一个结构体数组。
matlab | 阅读 6360 次
文章评论,共1条
vfdff(作者)
2009-09-13 10:34
1
Matlab Matlab结构数组与元胞数组<br />
<br />
<br />
Matlab结构数组:<br />
<br />
结构数组的定义——用赋值语句<br />
comutext(1).name='何剑';<br />
comutext(1).age=22;<br />
comutext(1).test=[68,85,75];<br />
comutext(2).name='fly';<br />
comutext(2).age=22;<br />
comutext(2).test=[75,82,85];<br />
comutext<br />
结构数组的定义——用struct<br />
comutext(1)=struct('name','何剑','age',22,'test',[68,85,75]);<br />
comutext(2)=struct('name','fly','age',22,'test',[78,85,75]);<br />
结构数组运算举例:<br />
n=length(comutext);<br />
for i=1:n<br />
total_m=sum(comutext(i).test);<br />
average_m=mean(comntext(i).test);<br />
[total_m average_m]<br />
end<br />
Matlab元胞数组:<br />
<br />
元胞数组的生成——用赋值方法<br />
方式一:<br />
a(1,1)={[1 3 5;4 7 9]};<br />
a(1,2)={'北京'};<br />
a(2,1)={8};<br />
a(2,2)={(0:0.01:pi)};<br />
方式二:<br />
a{1,1}=[1 3 5;4 7 9];<br />
a{1,2}='北京';<br />
a{2,1}=8;<br />
a{2,2}=0:0.01:pi;<br />
元胞数组的生成——用cell函数分配数组,再对逐个元素赋值<br />
(注意:元胞数组使用圆括号寻访得到的是元胞,而不是内容;使用大括号寻访,则可得到元胞的内容)<br />
%借用上例的元胞数组a<br />
a1=a(1,2)<br />
a2=a{1,2}<br />
a3=a(1,1)<br />
a4=a{1,1}<br />
<br />
串演算函数:<br />
<br />
eval——用于对字符串表达式进行计算<br />
feval——&gt;&gt;feval('sin',(0:0.2:1)*pi)%其中sin为函数句柄或函数名
游客请输入验证码
浏览1940914次