ich muss sagen, dass ich nicht ganz kapiere was du genau machen willst. Wenn es dir nur um das einmalige importieren einer Datei geht kannst du mal den Import Wizard probieren:
eigentlich sollte er eine Variable im Workspace anlegen. Im dritten Fenster steht links der Name, der standardmäßig dem Dateinamen ohne Extension entspricht. Den kann man aber auch umbenennen.
die Datei hast du ja nun schon eingelesen.
Das Umformen der Matrix kannst du mit reshape oder vec2mat erledigen.
Zum speichern in xls gibt es die Funktion xlswrite.
%NUMERIC=zeros(73,144);
%A=zeros(17,21);
for n=1:1%365 for m=1:1%4
e=actxserver('Excel.Application');
e.delete;
NUMERIC = xlsread(['C:\Users\Sebasian\Desktop\Geo-Test\Originaldaten(2007)\Test\',num2str(n),'_', num2str((m-1)*6),'.xlsx']);
for j=9:25 for i=64:84
A(-8+j,-63+i)=NUMERIC(j,i);
xlswrite(['C:\Users\Sebastian\Desktop\Geo-Test\Originaldaten(2007)\Test\Filter\',num2str(n),'_', num2str((m-1)*6),'.xlsx'],A);
end end end end end
Fehlermeldung kommt erst keine aber busy, bis ich strg c drücke.
Dann logischer weise schon.
Und beim nächsten Versuch kommt dann:
??? Error using ==> xlswrite at 253
The file C:\Users\Sebastian\Desktop\Geo-Test\Originaldaten(2007)\Test\Filter\1_0.xlsx is
not writable. It may be locked by another process.
Error in ==> filtern at 13
xlswrite(['C:\Users\Sebastian\Desktop\Geo-Test\Originaldaten(2007)\Test\Filter\',num2str(n),'_',
num2str((m-1)*6),'.xlsx'],A);
Ach so, und löschen kann ich dateien auch nicht mehr. Erst nach Task-Manager besuch.
Nimm erstmal die beiden Zeilen mit dem actxserver raus, die benötigst du bei xlsread und xlswrite nicht.
Ich denke es ist kein Wunder, dass sich da lange nichts tut, wenn du 320 Werte einzeln in eine Excel Datei wegschreibst. xlsread und xlswrite sind nicht gerade übermäßig performant. Wenn du dann abbrichst ist die xls datei natürlich noch gelockt, und kann beim nächsten mal nicht geschrieben werden. Also erst alle Daten in MATLAB bearbeiten, und anschließend auf einmal in Excel exportieren.
Ich würde mir übrigens abgewöhnen i und j als Laufvariable zu verwenden. Eigentlich sind die als komplexe Einheit reserviert, was dann zu vielen lustigen Fehlern führen kann, wenn sie überschrieben wurden, und man eigentlich die komplexe Einheit erwartet.
Mit data{1} kannst du dann auf die erste Teilmatrix zugreifen. Im Cell-Array kannst du deine Daten dann nach Bedarf manipulieren, und anschließend exportieren.
das xlswrite muss doch außerhalb der schleife stehen.
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.