将每个循环的结果数组添加到一个单元格

Add the resulting array of each loop to a cell

我有一些算法,包括 while 循环:

 while  (condition)
    % do something and return a result array B
 end

假设:

 -Loop 1: B1=[1 2 3 4 5....9];
 -Loop 2: B2=[10 11 12....15]; 
 -Loop 3: B3=[16 17 18 19]   ;  
 -Loop 4: B4=[20 21 22....30]; 

如何在循环结束后创建一个单元格A={B1,B2,B3,B4}

对于我的真实数据,while循环可能循环了100次或更多,以上是一个简化。

您可以使用 horzcat 或 [] 加入数组。然后初始化一个单元格并将它们保存到那个单元格中。

%% loop
count = 0 ;
iwant = cell([],1) ;
while .....
        count = count+1 ;
    %% let be your arrays
    B1=1:9 ;
    B2=10:15 ;
    B3=16:19 ;
    B4=20:30 ;
    %% join them into array
    B = [B1 B2 B3 B4] ;
    iwant{count} = B ;
end

您可以使用 end 关键字

% Initialise empty cell array
A = {};
while *condition*
    % Create B using some calculation (different each loop)
    B = [1 2 3];
    % Other code ...
    % Assign to array
    A{end+1} = B;
end