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

fittype Input

 

crushkid
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.08.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 22.08.2013, 10:28     Titel: fittype Input
  Antworten mit Zitat      
Hallo,
ich habe vor einen fittype mit einer anonymus function zu erstellen.
Im Prinzip ist die Funktion eine variable Summe an Gauss-Funktionen.
Die Eingabe sollte Theoretisch ja so aussehen:
Code:
g = fittype( @(a, b, c, x) a*x.^2+b*x+c )

Bisher habe ich die Funktionen in einem String zusammengesetzt (ich habe keine symbolic-toolbox zur verfügung).
Code:
disp(Fun)
 +a1*exp(-((x-b1)/c1)^2)+a2*exp(-((x-b2)/c2)^2)+a3*exp(-((x-b3)/c3)^2)+a4*exp(-((x-b4)/c4)^2)+a5*exp(-((x-b5)/c5)^2)+a6*exp(-((x-b6)/c6)^2)+a7*exp(-((x-b7)/c7)^2)+a8*exp(-((x-b8)/c8)^2)+a9*exp(-((x-b9)/c9)^2)+a10*exp(-((x-b10)/c10)^2)

Ebenso sind die Variablen alle in einem String. (bzw. class()=char).
Code:
disp(Var)
a1, b1, c1, a2, b2, c2, a3, b3, c3, a4, b4, c4, a5, b5, c5, a6, b6, c6, a7, b7, c7, a8, b8, c8, a9, b9, c9, a10, b10, c10, x

Ich habe schon viel herumprobiert, allerdings habe ich es nicht geschafft die Funktionen oder Variablen einzusetzen (eval etc.). Ebenso hab ich es mit einem function-handle probiert, um danach lsqcurvefit anzuwenden.
Ich habe gerade keine Idee, wie ich weiter kommen könnte und würde mich über Hilfe freuen.
Viele Grüße, Daniel

edit: Ich hänge am besten die Datei noch an

maxima.m
 Beschreibung:

Download
 Dateiname:  maxima.m
 Dateigröße:  1.56 KB
 Heruntergeladen:  479 mal
Private Nachricht senden Benutzer-Profile anzeigen


crushkid
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.08.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 22.08.2013, 11:53     Titel:
  Antworten mit Zitat      
Hallo nochmal,
ich bin jetzt selbst ein Stückchen weiter gekommen.
Ich hab den ganzen fittype Ausdruck als String zusammengestellt
Code:
['g=fittype(@(',Var,') ',Fun,')']
.
Wenn ich nun das Ergebnis dieses Ausdruckes in die command-line kopiere, klappt alles (ich befinde mich im debug-mode).
Wenn ich allerdings
Code:
eval(['g=fittype(@(',Var,') ',Fun,')'])
schreiben möchte, gibt er mir die Fehlermeldung
Code:
Error: This statement is incomplete.
aus.
Wahrscheinlich ist das ganze ein Anfänger-Fehler.
Falls doch noch jemand weiß, wie man das eleganter Lösen kann, würde ich mich auch freuen.
Viele Grüße, Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 11:57     Titel:
  Antworten mit Zitat      
da ist glaube ich ein komma zu viel.
von eval ist übrigens abzuraten wenns sich machen lässt da es nur schwer zu debuggen ist wie du ja grade selber merkst.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
crushkid
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.08.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 22.08.2013, 12:51     Titel:
  Antworten mit Zitat      
Danke für die Antowort. Welches Komma ist denn da zu viel? Die Kommas sollen die verschiedenen Strings, die zusammengfügt werden sollen, trennen (Hier im Forum wird das nicht farblich richtig dargestellt).
Was gibt es denn für Alternativen zu eval?
Gruß, Daniel

edit: Der String sieht so aus:
Code:
g=fittype(@(a1, b1, c1, a2, b2, c2, a3, b3, c3, a4, b4, c4, a5, b5, c5, a6, b6, c6, a7, b7, c7, a8, b8, c8, a9, b9, c9, a10, b10, c10, x)  +a1*exp(-((x-b1)/c1).^2)+a2*exp(-((x-b2)/c2).^2)+a3*exp(-((x-b3)/c3).^2)+a4*exp(-((x-b4)/c4).^2)+a5*exp(-((x-b5)/c5).^2)+a6*exp(-((x-b6)/c6).^2)+a7*exp(-((x-b7)/c7).^2)+a8*exp(-((x-b8)/c8).^2)+a9*exp(-((x-b9)/c9).^2)+a10*exp(-((x-b10)/c10).^2))

wobei es auch nicht geht, wenn ich das 'g=' weglasse
Private Nachricht senden Benutzer-Profile anzeigen
 
crushkid
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.08.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 23.08.2013, 11:12     Titel:
  Antworten mit Zitat      
http://www.gomatlab.de/problem-mit-eval-t30132.html
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.