2016-03-23 9 views
0

I a Table haben, die 100 x 19NaN Zeilen in Matlab Tabelle

Die ersten 16 Spalten der Tabelle ist Zeichen enthält, enthalten die letzten 3 Spalten Doppel Variablen.

Wie kann ich nach der 50. Zeile 3 neue Zeilen mit NaNs einfügen, so dass meine Tabelle 103 x 19 wird?

Tabelle ist in Form

Subject Sex Age .... .... ... .. Var1 Var2 Var3 
1  M 38      88 89 99 
2  F 34 ..... .... .. ... 34 34 34 

und ich würde so etwas wie gerne (in diesem Beispiel füge ich nur 1 Zeile zwischen dem 1. und 2.)

Subject Sex Age .... .... ... .. Var1 Var2 Var3 
1  M 38      88 89 99 
1  M 38 ..... .... .. . . NaN NaN NaN 
2  F 34 ..... .... .. ... 34 34 34 

Antwort

4

Sie können NaN Werte schaffen Verwenden Sie die Funktion nan(), und hängen Sie sie dann als neue Daten an Ihre Tabelle an. Sie müssten die neuen Daten als Tabelle mit denselben Variablennamen verwenden. Ich gehe hier davon aus, dass alle von ihnen numerisch sind.

In Ihrem Fall

T=[T; array2table(nan(3,8),'variablenames',T.Properties.VariableNames)]; 

Zusätzlich ist, wie pro @ Dan Kommentare, es scheint, dass Sie auch

tun können
T{51:53,:} = NaN 

Noch einmal, wenn alle Werte numerischen Typ sind.

+0

Oder 'T (51:53, :) = NaN' – Dan

+0

@ThomasW. Wenn Sie in die Mitte einfügen, dann 'T = [T (1:50, :); Nan (3,19); T (51: Ende, :)] ' – Dan

+0

@Dan, in der Tat habe ich meinen Kommentar in der Zwischenzeit entfernt :) –

2

alle Daten Unter der Annahme, numerisch ist, dann

% Create an example table 
>> tbl = table((1:100)',(101:200)'); 
% Append rows 
>> tbl{end+1:end+3,:} = nan; 
% Move rows 
>> tbl{53:end,:} = tbl{50:100,:}; 
% Insert nans 
>> tbl{50:52,:} = nan; 

Wenn alle Daten nicht numerisch ist, dann ist es ein wenig schwieriger, aber die allgemeine Idee hält immer noch.

+0

Hallo danke für Ihre Antwort. Die Daten sind gemischt. d.h. die ersten 16 Spalten sind char den Rest Doppel – gabboshow

+1

@gabboshow und wie möchten Sie NaN in einer nicht numerischen Variable speichern? Es ist technisch ein NaN (keine Nummer) schon! –

+0

Ok sagen, dass ich den Inhalt der letzten nicht numerischen Variablen replizieren und den numerischen durch NaN ersetzen möchte. – gabboshow