2017-09-01 63 views
0

我有一些算法,包括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次或更多,以上是簡化。

回答

1

您可以使用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 
-1

您可以使用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