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

Darstellung einer 1 als 01?

 

Paet0r
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 26.08.2010, 18:10     Titel: Darstellung einer 1 als 01?
  Antworten mit Zitat      
Huhu,

gibt es ein Formatelement, was eine 1 als eine 01 bzw. 2 als 02 etc. darstellt?
also nicht
Code:
, was ja als ganz zahl darstellt, sondern
Code:
?

Danke im Vorraus für die Antwort.

Grüße
Paet0r[/quote]
Private Nachricht senden Benutzer-Profile anzeigen


Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 26.08.2010, 18:51     Titel:
  Antworten mit Zitat      
Hi,
Code:


gruss
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 26.08.2010, 19:28     Titel:
  Antworten mit Zitat      
Hi =)
Danke für die schnelle Antwort.

Die Frage bezog sich auf das Scipt, zu welchem du mir damals verholfen hast.
Jenes, welche viele Files aus nem bestimmten Ordner raussucht und in ne Matrix speichert.
Da gibts jetzt ein problem: Das Programm lädt nur Daten, die an zweiter Stelle eine zweistellige Zahl haben, amsonsten gibt es den Error:

error: regexp: range out of order in character class at position 17 of expressi
n
error: called from:
error: M:\fwt\members\mw5697\fc.m at line 18, column 2

hier noch das Script:

Code:

function [M] = fc(a,b,c,d,e,f,pfad)
% Function to load any amount of files of target direction
% with the name like: phs0a-b_000c-d_0000e-f
 
% Using the variables of the function to define the file name
% fix and mod are used to round the variables c and d, so if u use
% Numbers from 1 to 9, they're written as 01 -09

string = sprintf('phs0[%d-%d]_000[%02d-%02d][%d-%d]_0000[%d-%d]',...
a,b,fix(c/10),fix(d/10),mod(c,10),mod(d,10),e,f);

% defining list as the direction u've chosen by typing the variables in Octave-command-window
list=dir([pfad,'\*']);
% defining names as a combination of list and names
names={list.name};

% regexp is used to check names with the string above and save all the matched ones in X
X=regexp(names,string,'match');
% returns the indicies of the empty cells.
ind=cellfun('isempty',X);
% ~means "not", or in our case "without"
% so X now stands for all the files, which could be identified through our function(insert)
X=X(~ind); % delete the empty cells
% in this case the number  of the files identified.
len=length(X);
% for-loop to read all the files defined through the function-insert
% in reads all the files which matched through regexp and identified by cellfun
  tic
for ii=1:len
 
  Cell{ii}=dlmread(fullfile(pfad,char(X{ii})));
  toc
 
 % due to an unknown reason, it returns the files with an additional 0-vector as first, this is needet to delete it
  Cell{ii}(:,1)=[];
 % all the matrices are saved in workspace one by one,(in a cell), this is needet to bring em all in one matrix(double)
 M = cell2mat(Cell');
    end;
 


also man kann für c und d nur zweistellige Sachen eingeben, leider.

Weißt du einen guten Rat? =)

Gruß
paet0r
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 27.08.2010, 08:16     Titel:
  Antworten mit Zitat      
Hallo,
Zitat:

Das Programm lädt nur Daten, die an zweiter Stelle eine zweistellige Zahl haben


wie sieht der name einer datei aus, die an 2.stelle eine einstellige zahl hat?
so ZB: phs03_00004_00001
oder so phs3_0004_00001

gruss
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 27.08.2010, 13:27     Titel:
  Antworten mit Zitat      
Hallo =)
Variante a) Wink
Zitat:
phs03_00004_00001

und wenn ich halt für c oder d was einstelliges schreibe, kommt dieser regexp-error:
Zitat:

error: regexp: range out of order in character class at position 17 of expressi
n
error: called from:
error: M:\fwt\members\mw5697\fc.m at line 18, column 2
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 27.08.2010, 13:53     Titel:
  Antworten mit Zitat      
Hallo,
ich hab gerade den code getestet:
http://www.gomatlab.de/viewtopic,p,49774.html#49774

hab die funktion mit:
M = fc(1,5,4,6,1,9,pfad)
M = fc(1,5,11,13,1,9,pfad)

aufgerufen, und es wurden in beiden fällen die richtigen dateien gelesen.


Question Question

gruss
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 27.08.2010, 14:19     Titel:
  Antworten mit Zitat      
Hiho =)
Hab abermals viele Dank für deine schnelle antwort! )
Es ist ein Fehler von mir gewesen irgendwie =)
Also das hat nichts damit zu tun, dass die Zahlen in Einstellig oder zweistellig sind.. sondern damit, dass die ersten Files lehr sind. Wenn dies der Fall ist, bricht der sofort ab. Is aber warscheinlich nicht so schlimm =))
Ganz nebenbei würde ich dich gerne noch was fragen... diese Funktion braucht für 5 MB Daten ca. 40 Sekunden zum Laden.. und für 18 MB ca 1200 Sekunden.. auf nem ziemlich mächtigem Rechner =) weißt du zufällig, womit das zusammenhängt? Ist schon ziemlich lang =)
Bzw. wo das programm so viel Zeit benötigt? davor und danach werden andere Programme laufen gelassen, zum beispiel zur Berechnung von Daten. das geht dann wieder sehr schnell. naja =)

Danke nochmal für deine Antworten )
Gruß
Paet0r
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 27.08.2010, 14:26     Titel:
  Antworten mit Zitat      
Hallo,

ich kann dir den profiler emfehlen, dann siehst du wo viel zeit verbraucht wird.
im command window tippst du ein :

1-profiler on
2-rufst du deine funktion auf
3-profiler report.
dann
4-profiler off

gruss[/code]
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 27.08.2010, 14:37     Titel:
  Antworten mit Zitat      
Huhu,

da ich nicht mit Matlab sondern mit Octave arbeite, gibt es dort sowas leider nicht =)
Ich benutze hierfür den tic toc Befehl.
Ca. 1/3 der Zeit geht für die For-Schleife weg und 2/3 für den dlmread-Befehl. Der Rest ist irrelevant kurz. Seltsam finde ich nur, dass die Zeit nicht linear sondern Proportional ansteigt, und zwar extrem =)
Habs noch nicht mit anderen befehlen probiert, bin aber grad dabei diese Sache irgendwie zu beschleunigen, da es in der Uni mit 100x-Mb großen Datenmängen gemacht werden muss, und da sollte es nach Möglichkeit nich so lange dauern ))
P.S.
Gibt es denn auch eine Möglichkeit, dass er die Fehlermeldung bei Regexp nicht macht, wenn ich leere Files auswähle? Also das er sie auch "mitlädt"?
SOll ich da den "isempty"-Teil weglassen?

Gruß
Paet0r
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2025 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.