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

Dateien einlesen mit function

 

Absolut_Beginner
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2017, 21:58     Titel: Dateien einlesen mit function
  Antworten mit Zitat      
Hallo,

ich habe ein Problem beim Einlesen von xls. Dateien, die sich von Namne her immer leicht unterscheiden, also z.b. 1_1_1, dann 1_1_2 usw. also die drei Ziffern variieren immer unterschieldich.
Ich habe nun eine Funktion erstellt mit den drei input aurguments für die jeweiligen drei Ziffern.

Die Fehlermeldung ist immer: Error using fopen, too many input arguments...

Wo liegt der Fehler?

[function [ data ] = Beispiel( Ziffer 1, Ziffer 2, Ziffer 3 )

fid = xlsread(num2str(Ziffer 1),'_',num2str(Ziffer 2),'_',num2str(Ziffer 3),'.xls');


data = textscan(fid,'%s %s %s ');

fclose(fid);


end]

LG
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 08:39     Titel:
  Antworten mit Zitat      
Hallo,

du musst die verschiedenen Teile zu einem Namen verketten.
Code:
[num2str(Ziffer 1),'_',num2str(Ziffer 2),'_',num2str(Ziffer 3),'.xls']


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 09:13     Titel:
  Antworten mit Zitat      
danke für deine Antwort. Leider verstehe ich nicht so ganz was du damit meinst...
die beiden _ bleiben immer gleich an der gleichen Stelle, deswegen '_', nur die drei ziffern ändern sich immer...kannst du mir auf die Sprünge helfen?

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 09:57     Titel:
  Antworten mit Zitat      
Hallo,

du musst eckige Klammern [ ] setzen, um die Teile zu verbinden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

leider kommt dann diese Fehlermeldung:

Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier.

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

das liegt aber nicht am Dateinamen, sondern dass das so generell nicht sinnvoll ist.
Um Textdateien einzulesen, sollte man die Kombination von fopen und textscan , für Excel-Dateien nur xlsread .

In beiden Fällen ist readtable eine schöne Alternative für tabellarisch aufgebaute Daten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 10:45     Titel:
  Antworten mit Zitat      
Hallo,

ok, habe nun fopen und fclose und textscan gelöscht, sodass ich nur noch xlsread verwende. Trotzdem bringt er mir die Fehlermeldung, wenn ich dann die Daten einlesen möchte...

Output argument "data" (and maybe others) not assigned during call to "Beispiel".

ich bin ratlos...

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 10:59     Titel:
  Antworten mit Zitat      
Hallo,

wie sieht denn der Code aus?
Ich kann auch nichts machen als dir die Fehlermeldung übersetzen:
Deine Funktion hat ein Rückgabeargument data, das aber nicht belegt wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 11:04     Titel:
  Antworten mit Zitat      
Hallo,

der Code ist der gleiche wie oben:

[function [ data ] = Beispiel( Ziffer 1, Ziffer 2, Ziffer 3 )

Daten = xlsread(num2str(Ziffer 1),'_',num2str(Ziffer 2),'_',num2str(Ziffer 3),'.xls');


end]

dann versuche ich in einem neuen Skript auf die Funktion zuzugreifen..

[code]for Ziffer 1 = 1:19

for Ziffer2 = 1:3
for Ziffer 3 = 1:3
data{Ziffer 1 , Ziffer 2, Ziffer 3} = Beispiel(Ziffer 1 , Ziffer 2, Ziffer 3);

end
end
end[/code]


LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 11:11     Titel:
  Antworten mit Zitat      
ahhhh, ich hab mein Fehler Very Happy habe die nicht gleich benannt, so müsste es jetzt gehen . Danke Smile

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 11:12     Titel:
  Antworten mit Zitat      
Hallo,

du nennst die Variable einmal data und einmal Daten. Die eckigen Klammern fehlen nach wie vor.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 13:53     Titel:
  Antworten mit Zitat      
Hallo,

ich habe es tatsächlich hinbekommen. Viele Dank dafür Smile

Habe nun noch eine andere Frage:

und zwar habe ich eine 3000x1 cell, die kann ich aber schlecht plotten...mit cell2mat bringt er mir eine Fehlermeldung...gibt es noch eine Möglichkeit aus dem cell ein double zu machen.?..besteht ja quasi nur aus einer Spalte aber eben cell statt double.

LG.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.08.2017, 13:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
und zwar habe ich eine 3000x1 cell

und was steht in den Elementen drin?

Zitat:
mit cell2mat bringt er mir eine Fehlermeldung

und wie lautet diese?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 14:10     Titel:
  Antworten mit Zitat      
Hallo,


in den Elementen sind einfach in einer Spalte 3000 Zahlen

die Fehlermeldung lautet dann:

Error using plot
Not enough input arguments.

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Absolut_Beginner
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2017, 14:27     Titel:
  Antworten mit Zitat      
also das war jetzt die plo fehlermeldung wegen den cells,
wenn ich cell2mat bei dem {3000x1 cell} nutze dann kommt:

Error using cat
Dimensions of matrices being concatenated are not consistent.

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.