ich arbeite im Zuge meines Studiums gerade mit einigen Daten und möchte auf deren Grundlage eine 3-dimenesionale Matrix erstellen.
Ich habe eine Tabelle mit 4 Spalten und sehr vielen Zeilen. Die ersten beiden Spalten enthalten Unternehmen, die von 1-100 durchnummeriert sind. Die dritte Spalte zeigt die Periode (1-10, also zehn Jahre) und die letzte Spalte die Werte der verkauften Waren(in Euro).
Ein Beispiel: 1;17;5;250000. Unternehmen1 verkauft in Jahr5 an Unternehmen17 Waren im Wert von 250000Euro.
Eigentlich recht simpel. Meine (3-dim) Matrix soll jetzt in der Zeile Unternehmensliste1 in den Spalten Unternehmensliste2 und in der 3.dim die Jahre enthalten. Es soll praktisch über die Jahre aggregiert werden.
Habe dafür einen Loop, der die o.g. Tabelle (data) durchläuft.
Loop:
Code:
umatrix=zeros(100,100,10);
for i=1:100 for j=1:100 for k=1:10 ifisempty(data(find(data(:,1)==i & data(:,2)==j & data(:,3)==k),4))==0;
umatrix(i,j,k)=sum(data(find(data(:,1)==i & data(:,2)==j & data(:,3)==k),4));
end end end end
Der Code ist ziemlich..naja ich will mal vorsichtig sagen: ineffizient . Bin Anfänger, vielleicht kann mir hier ja jemand einen Tipp geben, wie man das besser formulieren könnte, falls der Ansatz evtl. schon mal richtig ist!?
Vielen Dank für eine Antwort im Voraus!
Gruß Medivh
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.