Matlab 嵌套循环中的单元数组

Matlab 嵌套循环中的单元数组,matlab,Matlab,结束 我已经生成了三列和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{

结束


我已经生成了三列和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}应该是空的。有两种方法可以做到这一点。实际上,最简单的方法是将单元格初始化为单元格(0,1)并分配到C{r,end+1},但是如果有大量数据,这将非常缓慢。更好的方法是坚持单元(20,1)初始化。您还需要添加一个数组来存储数组的实际长度(数组中使用了多少个元素),而不是容量(它可以容纳多少个元素,即20个)。或者,您可以将其添加为C数组的第二维,而不是使用数组。你的选择。那么你的任务就是这样利用这个计数:

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个以上的元素,则应将单元格的容量增加一倍。 最后,要查看C中第一个条目中存储的数据,可以使用:

%Outside Loop
counts = zeros(1, n);

%Inside Loop
C{r}{counts(r) + 1} = blah blah
counts(r) = counts(r) + 1;
注意:我目前无法访问Matlab,所以我不能100%确定它的解析是否正确,但这是主要思想

%After Loop
C{1}{1:counts(1)}