2017-02-22 3 views
0

I haben Zellenfelder verketteten wie folgt:Ausgeben Inhalt mehrerer Zellenarray

data = {5x1 Zelle} {1x1 Zelle} {0x1 Zelle}

Dieser Befehl, Daten {:}, gibt mir:

ans = 

    'MR619_01_XR' 
    'MR629_01_XR' 
    'MR639_01_XR' 
    'MR645_01_XR' 
    'MR659_01_XR' 


ans = 

    'MR511_01_XR' 


ans = 

    Empty cell array: 0-by-1 

wie kann ich für Schleife verwenden oder ein anderes Verfahren zur Ausgabe der Inhalte wie folgt:

MR619_01_XR 
MR629_01_XR 
MR639_01_XR 
MR645_01_XR 
MR659_01_XR 
MR511_01_XR 
NULL 

Dank

+0

Sie erstellen ein Zellenarray von Zellenarrays. Beachten Sie, dass Sie Ihre Zellenarrays auch in ein einzelnes Zellenarray verketten können, indem Sie 'data = [{5x1 cell} {1x1 cell} {0x1 cell}] verwenden' – Tom

+0

@Tom Sie haben einen Fehler dort, sollte sein: 'data = {{ 5x1 Zelle} {1x1 Zelle} {0x1 Zelle}} '. 'horzcat' funktioniert nicht für nicht konsistente Dimensionszellen. – EBH

+0

@EHB danke, du hast recht, es sollte 'vertcat' in diesem Fall sein, d. H.' Data = [{5x1 cell}; {1x1 Zelle}; {0x1 Zelle}] 'Mein Punkt ist, dass die Verkettung mit eckigen Klammern, dh' [] ', durchgeführt wird, während geschweifte Klammern' {} 'nicht wirklich verketten, sondern ein neues Zellenarray mit den anderen Zellenarrays erstellen OP bekam die eine oder andere Ausgabe. Wenn alle Arrays definitiv eindimensional sind (wie in diesem Fall), kann eine einfache Verkettung eine einfachere Alternative sein. Aber das kann vom Kontext und persönlichen Vorlieben abhängen! – Tom

Antwort

3
temp=cellfun(@isempty,data); %Finding where empty elements are 
data(temp)={'NULL'};   %Changing those indexes with 'NULL' 
req = vertcat(data{:})  %Concatenating vertically 

%For your data, it gives: 
%req = 

% 'MR619_01_XR' 
% 'MR629_01_XR' 
% 'MR639_01_XR' 
% 'MR645_01_XR' 
% 'MR659_01_XR' 
% 'MR511_01_XR' 
% 'NULL' 
+0

Ausgezeichnet! Vielen Dank Sardar_Usama. Es hat wie erwartet funktioniert. – user27976

Verwandte Themen