WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schleife? welche? wie?

 

Gwor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 10:34     Titel: Schleife? welche? wie?
  Antworten mit Zitat      
moin,

Code:
clear all;
clc;
close all;
%%
for c=100:1500   % 100=1 Uhr, 1500=15 Uhr  
   
b = num2str(c)
laenge=length(b);
    if laenge==1
    textv=['000',b];
    elseif laenge==2;
    textv=['00',b];
    elseif laenge==3;
    textv=['0',b];
    elseif laenge==4;
    textv=['',b];
    end
   

cd (['D:\Daten\']);
A_file='textv';      
A=[textv,'.txt']

newData1 = importdata(A);
   
vars = fieldnames(newData1);
for i = 1:length(vars)
    assignin('base', vars{i}, newData1.(vars{i}));
end
.
.
.
.
.
end


meine Frage:
ich definiere mit "c" eine spanne von datenpaketen die eingelesen und ausgewertet wird, d.h. das makro zieht alle datenpakete ( alles einzelne txt files ( 100.txt, 101.txt, 102.txt ...... 1500.txt)) nacheinander ein. Dies funktioniert auch super ^^
Habe aber das Problem, daß das Makro auch die txt-files haben möchte wie 160.txt....199.txt bzw. 260.txt....299.txt usw.
diese txt files habe ich nicht, da die zahlen der files im prinziep eine uhrzeit symbolisieren und nur bis ..59 hochzählen ( 259.txt dann folgt 300.txt)---> also 2 Uhr 59 und dann 3 uhr 00.
Desweiteren können immer mal einzelne Files fehlen, da der Rechner ab und zu resettet wurde.

möchte nun in das o.a. makro noch eine schleife integrieren, was das oben beschriebene problem löst, so daß der rechner alles hintereinander durchrechnet !!

Danke schonmal im voraus^^
MfG Gwor


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.09.2008, 10:41     Titel: Re: Schleife? welche? wie?
  Antworten mit Zitat      
Moin,

das sollte funktionieren:
Code:
% [...]
try
    newData1 = importdata(A);
catch
end
% [...]


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gwor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 10:47     Titel:
  Antworten mit Zitat      
super, danke.....

aber wo mache ich die schleife zwischen ?

mfg
 
Gwor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 10:57     Titel:
  Antworten mit Zitat      
habe das mal eingebaut (dummheit lässt grüßen^^)

bekomme jetzt aber eine fehlermeldung:

??? Undefined function or variable 'newData1'.

Error in ==> makro at 48
vars = fieldnames(newData1);
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 11:05     Titel:
  Antworten mit Zitat      
Hi,

wäre es nicht einfacher, mit
Code:
eine Lister der offenbar schon vorhandenen Dateien anzulegen und die dann abzuarbeiten? Optimal wäre es, wenn dann nur diese Dateien im Verzeichnis lägen.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.09.2008, 11:07     Titel:
  Antworten mit Zitat      
Ahh, stimmt...

folgendes könnte helfen:
Code:
% [...]
try
    newData1 = importdata(A);
catch
    newData1 = [];
end

if ~isempty(newData)
    vars = fieldnames(newData1);
    for i = 1:length(vars)
        assignin('base', vars{i}, newData1.(vars{i}));
    end
    .
    .
    .
    .
    .
end
end
% [...]


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gwor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 11:12     Titel:
  Antworten mit Zitat      
naja, dachte man könnte ne einfache schleife da reinlegen, die immer eine datei weiter springt, und wenn die datei nicht gefunden wird, gleich die nächste versucht.

insgesamt sind das 750 txt files die zu bearbeiten sind.

mfg
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 11:16     Titel:
  Antworten mit Zitat      
Ja, das geht schon, ist aber doch irgendwie ungeschickt.
Du legst 1500 Dateinamen an, von denen es also höchstens 750 geben sollte.
Dann würd ich doch eher gucken, welche Dateien wirklich da sind.
Das geht mit dem
Code:
von oben.
Ich nehme auch mal an, das wegen der fehlenden Versuche nicht existierende Dateien zu öffnen das ganze schneller wird.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gwor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 11:33     Titel:
  Antworten mit Zitat      
so, habe mal den vorschlag von steve eingebaut =)

mit
Code:
if ~isempty(newData1)  %die 1 fehlte =)
 


läuft richtig gut !!!

und das überspringen von nicht vorhandenen dateinamen geht <1s also top ^^

die gesamte rechnung dauert eh 3-4 h.


Danke nochmal ^^
Matlabfan
Gwor
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.