2017-09-23 1 views
1

Nehmen wir an, wir haben zwei Matrizen als Eingabe, X und Y. Ich würde gerne jede Spalte von Y für jede Spalte von X zurückrechnen und mehrere Parameter berechnen, dann erstellen Sie eine Tabelle für die Ergebnisse. Hier ist mein Startcode ist:Wie kann ich eine Tabelle erstellen, um Daten aus einer Iteration in MATLAB zu speichern?

function [Table]=create_table(Y,X) 
    [n,p]=size(X); % size of both matrix is X 
    for ii=1:p % iterate over all variable 
     x=X(:,i); 
     y=Y(:,ii); 
     x = [ones(size(x)) x];% construct X matrix 
     [b,~,~,~,~] = regress(y,x); 

     %% let us suppose we would like to calculate two parameters 
     unknown=b(1)*100-b(2); 
     known=b(2)/b(1)+200 
    end 
end 

Was will ich als ein Ergebnis erhalten, ist folgende Tabelle (lassen Sie uns annehmen, dass p = 3):

enter image description here

Ich weiß, es ist ein table Befehl in MATLAB , aber ich weiß nicht, wie man es hier benutzt?

Antwort

1

Unmittelbar vor Ihrer for-Schleife können Sie Ihre table (gefüllt mit Nullen zu starten) initialisieren etwa so:

T = table((1:p).', zeros(p, 1), zeros(p, 1), ... 
      'VariableNames', {'Iteration', 'Unknown', 'Known'}); 

Dann können Sie fill in rows of your table innerhalb der Schleife durch die Berechnungen von unknown und known mit diesem ersetzen:

T.Unknown(ii) = b(1)*100-b(2); 
T.Known(ii) = b(2)/b(1)+200; 
+0

nach Zyklus sollte ich Tabelle füllen? –

+0

@datodatuashvili: Ich weiß nicht, was du meinst. Ich denke, ich habe klargestellt, wo die Zeilen oben in deinem Code stehen müssen. – gnovice

+0

ich werde versuchen, und ich werde, wenn etwas ich didnot –

Verwandte Themen