请教Matlab元胞数组的问题:

t:=1:100
用 a=cell(1,100) 和 a{1,1} =[sin(t),cos(t),0;cos(t),0,0;0,0,0] 来定义其中的一个元素{1,1}. 但是怎么批量的定义全部100个元素?
还有,显示a值的时候是[3x3 double]? 怎样能显示全部的元素?
多谢啦
尝试用 a{1,:}=rand(3) 这样的句子,但是出错,
提示:

The right hand side of this assignment has too few values to satisfy
the left hand side.

应该怎么实现呢?

元包数组可以批量赋值么?没试过,一般都是用循环来做
你这里a{1,:}=rand(3)%a是100个元包元素,而右边只是一个数,这个数不管它有多少个元素,它都只能对应于元包数组中的一个元素。要给元包数组批量赋值,前提就需要一个元包数组,这样既然已经有了,那还赋值干嘛呢。所以还是用循环做
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-10
批量赋值貌似不能通过引用内容实现,引用数组元素还是可以的~
>> a=cell(3,3)
a =
[] [] []
[] [] []
[] [] []
>> a(:,:)={2}
a =
[2] [2] [2]
[2] [2] [2]
[2] [2] [2]
另外:
>> a(:,:)=num2cell(rand(3,3))
a =
[0.9649] [0.9572] [0.1419]
[0.1576] [0.4854] [0.4218]
[0.9706] [0.8003] [0.9157]
>> a(:,:)={rand(3,3)}
a =
[3x3 double] [3x3 double] [3x3 double]
[3x3 double] [3x3 double] [3x3 double]
[3x3 double] [3x3 double] [3x3 double]
相似回答