Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 嵌套循环中的单元格数组

clc clear all n=3; % Three column j=1; for ii=1:n C{ii}=cell(20,1) % Each column got 20 rows. end for k=1:2 for l=1:3 for m=1:2 X{j}='No strings attched'; % stored all generated data. j=j+1; % I would like to know which column I should store the data. %Randomly picking a column number r=ceil(rand(1,1)*n) % Storing in that column. ***C{r}='No strings attched';*** end end 结束

我已经生成了三列和20行。在嵌套循环中,我生成一个数据并将其全部存储。接下来,我随机挑选一个笨拙的人并存储生成的数据。然而,我可以看到产生的数据的总数是12应在,将列1 2,1,3,1,* 2,1 *,2,3,1,2,1。因此,当我检查C(1)时,它应该显示六个数据。但是,我不知道该怎么做。任何帮助表示赞赏。



回答:

最后,您要为C {r}分配一个字符串,该字符串是20x1的单元格。然后,您需要从20x1单元格中选择一行。例如,C {r} {1}。

接下来,我不确定您要做什么,但这听起来像是您想让C {1} {1:6}拥有数据,但是C {1} {7:20}应该空的。有两种方法可以做到这一点。最简单的方法实际上是将像元初始化为cell(0,1)并分配给C {r,end + 1},但是如果您有很多数据,这将非常慢。更好的方法是坚持进行cell(20,1)初始化。您还需要添加一个数组,该数组存储数组的实际长度(使用数组中的元素数)而不是容量(可以容纳20个元素)。或者,也可以不使用数组,而可以将其添加为C数组的第二维。你的选择。然后您的分配将利用该计数,如下所示:

%Outside Loop counts = zeros(1, n); %Inside Loop C{r}{counts(r) + 1} = blah blah counts(r) = counts(r) + 1; 如果单元数超过20,则应将单元格的容量增加一倍。最后,要查看存储在C中第一个条目中的数据,可以使用:

%After Loop C{1}{1:counts(1)} 注意:我目前无法访问Matlab,因此我不确定100%都可以正确解析,但这是主要思想。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:06


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.