Verfasst am: 26.08.2011, 09:34
Titel: function variabel halten
Moin zusammen,
ich bin auf der Suche nach einem kleinem Anstoß wie ich in einer function die Eingabe- und Übergabeparameter variabel halten kann.
Kleine Erklärung:
Ich hab eine function, bei der ich zur Zeit 3 Vektoren mit je 8 Elementen als Eingabeparameter habe. Was ist jedoch wenn ich plötzlich 5 Vektoren mit 24 Elementen benötige oder irgendeine andere Kombination.
Es muss doch irgendwie möglich sein so einen Fall zu Programmieren. Es wäre ja etwas viel Aufwand für jedes Mal eine neue Function zu schreiben. Dann würde man diese ja nicht mehr benötigen.
Also ich habe gelernt, dass man alles mit Matlab machen kann also bin ich auch hier sehr zuversichtig, dass mir jemand etwas unter die Arme greifen kann!
also vielen Dank für die schnellen Antworten. Allerdings gibt es da kleine Verständnisprobleme meinerseits. Bin noch nicht so lange dabei. Gibt es für sowas ein kleines Beispiel wo man sich das mal anschauen kann?
Also ich hab mich da jetzt mal etwas reingelesen muss allerdings sagen, dass die Beispiele mir irgendwie nicht ganz helfen. Vielleicht fehlt mir auch nur ein weiterer Teil um das umzusetzen zu können was ich brauche.
Bei mir geht es zum Beispiel darum, dass ich Daten aus ungefähr 3-12 .txt files einlesen muss. Dazu will ich die Eingabe variabel halten und die Ausgabe in der Funktion.
So nun weiß ich aber nie ob ich 3 oder mehr Dateien einlesen will bzw. muss und möchte gerne die Eingabe und die Ausgabe variabel halten. Kann mir da eventuell einer bei behilflich sein?
Greetz
Micha85
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.09.2011, 08:49
Titel:
Hi,
benutze doch wie schon erwähnt ein struct als Eingangsgröße. Ich denke das ist in Deinem Fall das einfachste:
Mir ist nicht ganz klar, was ich wo eintrage soll!
Woher weiß denn dann das System was ich wo haben möchte?
Du hast nicht zufällig ein etwas klareres Beispiel als MATLAB? Ich komme irgendwie mit der Hilfe nicht ganz so gut klar!
Ich habe gerade mal genauer hingesehen und bemerkt, dass man entweder einen cell array oder einen sclar value eintragen kann. Von daher ist das für mich meiner Meinung nach nicht relevant, weil ich dann vorher die Daten ja noch wieder manuell einlesen müsste. Genau das will ich ja vermeiden!
Micha85
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.09.2011, 09:27
Titel:
Hi,
wenn Deine beliebige Anzahl an txt-Files nun alle in einem Ordner abgelegt sind, könntest Du mit Befehlen wie "dir" usw. die Dateinamen zum Beispiel in ein Cell-Array packen und als Eingang für Deine Funktion nutzen.
In einer Schleife gehst Du anschließend alle Dateien durch und speicherst die Ergebnisse in einem struct ab.
Code:
for i=1:1:AnzahlDateien
% Berechnungen
Ergebnis.['Datei_' num2str(i)] = ...;
end
Alles klar meine bisherigen Fähigkeiten mit MATLAB sind noch sehr eingeschränkt.
Habe gerade mal 'dir' ausprobiert und da ist das Problem, dass ich in meinen Daten auch eine Menge Text stehen habe. Deswegen fange ich auch erst in Zeile 24 an auszulesen. Dadurch funktioniert das nicht so gut mit 'dir'.
Kann man den Befehl auch irgendwie einschränken?
Mit dem struct bin ich leider auch noch nicht weiter! Irgendwie will das nicht bei mir rein. Hast du dafür nicht ein kleines Beispiel?
erstmal vielen Dank für die Antwort aber dieses struct ist ein Rätsel für mich. Ich habe gestern noch folgendes erstellt, ist zwar noch nicht ganz fertig aber ich wollte es mal posten vielleicht interessiert es ja noch jemand anderen.
Gibt mit Sicherheit noch was zu verbessern aber vorerst funktioniert es.
Man hätte auch direkt nach dlmread schon das varargout(k) = Ausgabe setzen können aber wie schon gesagt ich muss das jetzt noch so bearbeiten, dass ich automatisch die Spalten aller Matrizen in Vektoren bekomme und mir die ausgegeben werden!
Wenn jemand weiß wie man das mit dem struct macht immer her damit. Würde mich wirklich interessieren und vielleicht verstehe ich das dann mal endlich.
Wenn alles fertig ist, poste ich nochmal die vollständige function!
Aso, das mit dem dir Befehl funktioniert nicht. Dabei liest er nicht meine Daten ein sondern gibt mir nur "Müll" aus!
Hallo Atmos_kk,
nach deinen ANtworten, kann ich dir leider nicht helfen.
Atmos_kk hat Folgendes geschrieben:
Wenn jemand weiß wie man das mit dem struct macht immer her damit. Würde mich wirklich interessieren und vielleicht verstehe ich das dann mal endlich.
Was verstehst du denn nicht? Was für ein Problem bereitet dir der Programmrahmen den ich dir vorgeschlagen habe?
Atmos_kk hat Folgendes geschrieben:
Aso, das mit dem dir Befehl funktioniert nicht. Dabei liest er nicht meine Daten ein sondern gibt mir nur "Müll" aus!
Diese Aussage, ist mit Verlaub, auch "Müll" für uns Antwortende.
Auf diese Aussage, kann man nicht Antworten. Was ist "Müll"? Was hast du geschrieben? Fehlermeldung? Sollverhalten? Istverhalten?
Bitte alles immer so präzise wie möglich angeben, dann ist das Antworten wesentlich leichter.
_________________
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.