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

Function - irgendwas fehlt

 

Absolut_Beginner
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2017, 09:19     Titel: Function - irgendwas fehlt
  Antworten mit Zitat      
Hallo an alle,

habe hier noch nie geschrieben, und bin auch eher ein richtiger Neuling. Seis also bitte nachsichtig mit mir...
Und zwar möchte ich mehrere (über 100) txt.Dateien einlesen mithilfe einer Function.

jedoch bringt er mir jedes Mal die Fehlermeldung," Not enough input arguments."
Ich bin grade am verzweifeln, weiß nicht wo das Problem liegen könnte.
Ich möchte natürlich,dass die Dateien sich automatisch einlesen, sie heißen 1_1_1 dann 1_1_2 etc die 1 in der Mitte bleibt immer gleich die erste und 3 Zahl wechselt immer durch.

DIe einzelnen Dateien besehen aus 3 Spalten und 11 Zeilen.

HIer mein Versuch:

Code:
function [data_double] = untitled (vp, trial);
path = ['....'];

fid = fopen([path, vp, '_1_', trial,'.txt'],'r');
data = textscan(fid, '%s %s %s');
fclose(fid);


Was mache ich falsch...? Confused

Liebe Grüße

[EDITED, Jan, Bitte code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.05.2017, 19:20     Titel:
  Antworten mit Zitat      
Hallo,

"untitled" ist ein ungewöhnlicher Funktionsname.

Die entscheidende Frage ist: wie rufst du die Funktion auf? Der "Run"-Button kann hier beispielsweise nicht funktionieren, da die Funktion ja zwei Eingabeargumente erwartet.

Um den Pfad zusammenzusetzen, würde ich den fullfile -Befehl empfehlen.

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: 27.05.2017, 20:50     Titel:
  Antworten mit Zitat      
mhm..zwei Eingabeargumente? d.h. ? sorry, aber irgendwie dachte ich, ich hätte die function verstanden wie sie funktioniert..aber iwe doch nicht...ich will ja einfach nur alle 100 Dateien nacheinander einlesen, mit ner Function...
ich steh iwie auf em schauch...:/
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.05.2017, 22:23     Titel:
  Antworten mit Zitat      
Hallo,

dann muss ja irgendwo eine Schleife sein. Soll die Schleife in der Funktion sein, oder außerhalb?

Dass du 100 Dateien einlesen willst, ist bekannt. Leider fehlt aber nach wie vor die Information, wie du die Funktion aufrufst.

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: 29.05.2017, 15:00     Titel:
  Antworten mit Zitat      
also die Schleife ist noch innerhalb der Function..das klappt denk ich auhc so weit. Problem besteht bei dem Aufrufen der Function...offensichtlich reicht das obige nicht, aber was muss denn matlab noch wissen, um die Function vollstndig zu machen? Rolling Eyes
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.05.2017, 15:43     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Problem besteht bei dem Aufrufen der Function...

Vermutlich. Daher wäre es auch wichtig, dass du schreibst, wie du versuchst die Funktion aufzurufen. Die Info fehlt mir weiterhin.

Wie gesagt:
Zitat:
Der "Run"-Button kann hier beispielsweise nicht funktionieren, da die Funktion ja zwei Eingabeargumente erwartet.


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: 30.05.2017, 19:58     Titel:
  Antworten mit Zitat      
ok, also es läuft jetzt soweit wenn ich bei der Funktion dann (1,1) eingeb, dass dann die erste txt datei eingelesen wird.

jetzt will ich noch eine Schleife schreiben, in der ich sag, dass die beiden Variablen vp, und trial nacheinander eingelesen werden, also die ändern sich ja immer..
Da dachte ich, mach ich das außerhalb, also eine schleife, in der ich auf die Funktion zurückgreife...

hab das mal so probiert, leider wohl zu einfach gedacht.. Rolling Eyes

for vp = 1:30
k(vp) = U4(vp,1);
for trial = 1:15

l(trial) = U4(1,trial)
end
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

U4 ist wohl deine Funktion?

Jetzt müsstest du uns nur noch verraten, was an deinem Versuch nicht funktioniert.
Wenn du beide Parameter in allem Kombinationen verwenden willst, müsste das eher so aussehen:
Code:
for vp = 1:30
for trial = 1:15
data{vp, trial} = U4(vp, trial);
end
end


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: 30.05.2017, 21:18     Titel:
  Antworten mit Zitat      
ja genau, U4 ist meine Funktion.
das klappt alles soweit, aber nun sind in meinem Data alle Daten komplett drin, ihc möchte aber, dass ich immer eine Variable bekomm für einen Datensat, also eine Datei 1_1_1 für vp 1 und trial 1, dann einen 1_1_2, also vp 1 und trial 2 und so weiter..also so wie eben die txt. Dateien auch aufgelistet sind, für jede VP und jeden trial eine eigene Datei...

Grüße und Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.05.2017, 21:56     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
ihc möchte aber, dass ich immer eine Variable bekomm für einen Datensat, also eine Datei 1_1_1 für vp 1 und trial 1, dann einen 1_1_2, also vp 1 und trial 2

Du kannst hier an verschiedenen Stellen nachlesen, dass das keine gute Idee ist. Wenn du es trotzdem unbedingt möchtest, musst du dir mit assignin behelfen.

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: 30.05.2017, 22:11     Titel:
  Antworten mit Zitat      
Hey,

aber das kommt doch relativ häugig vor, dass ich viele Datensätze habe die sich wein wenig unterscheiden..muss doch dann möglich sein, diese ganz nomal einzulesen, oder?
Und assignin wird nicht empfohlen weil es zu lange zum rechnen braucht?

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

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.05.2017, 22:29     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
muss doch dann möglich sein, diese ganz nomal einzulesen, oder?

Freilich ist das möglich, du hast es ja schon erfolgreich getan: das ist aus meiner Sicht der "normale" Weg. Der andere Weg mit assignin steht dir natürlich frei, ich würde aber davon abraten.

Zitat:
Und assignin wird nicht empfohlen weil es zu lange zum rechnen braucht?

Eher, weil es das weitere Verarbeiten der Informationen erschwert: wenn man einmal dynamisch erzeugte Variablennamen hat, kommt man nicht mehr weg davon, und jeder weitere Befehl wird zur Quälerei.

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: 30.05.2017, 22:37     Titel:
  Antworten mit Zitat      
Aber so hab ich ja nur einen datensatz und nicht die 100verschiedenen...bzw in data stecken die einzelnen double, kann ich die da iwie rausholen?

Danke für deine Antwort Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.05.2017, 07:03     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Aber so hab ich ja nur einen datensatz und nicht die 100verschiedenen...

Du hast schon die verschiedenen Datensätze, aber in einer Variablen zusammengefasst.

Zitat:
in data stecken die einzelnen double, kann ich die da iwie rausholen?

Wenn in jeder Zelle nur ein Double steht, dann cell2mat .
Ansonsten data{i,j} , um auf einen Datensatz zuzugreifen.

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: 02.06.2017, 09:57     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Bemühungen, habe es nun so hinbekommen wie ich wollte Smile

eine andere Frage zu ner Schleife, stell ich gleich in einem neuen Thread.

Dankeschön für die Hilfe .
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.