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

Anfängerproblem Funktionswerte berechnen

 

Pascal12
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.10.16
Wohnort: Hessen
Version: R2014a
     Beitrag Verfasst am: 19.10.2016, 08:33     Titel: Anfängerproblem Funktionswerte berechnen
  Antworten mit Zitat      
Hallo,
ich bin neu hier in diesem Forum und habe vor kurzem begonnen mit Matlab zu arbeiten.
Leider hänge ich schon seit mehreren Tagen an einer Fehlermeldung. Bei dieser Funktion meldet Matlab immer ein Fehler und ich weiß nicht was ich machen soll. Er möchte mir die Funktionswerte nicht ausgeben. Fehlermeldung Line 1 Column 19 unexpected Matlab Operator. Auch wenn ich den cos in Klammern setzte und ihn dann Komponentenweise berechnen lasse, kommt eine Fehlermeldung.Vielleicht hat ja jemand eine Idee. Ich wäre wirklich sehr dankbar!

Code:
function z= cos(r)*.(exp(-k*r))
x=(-10:0.2:10);
y=(-5:0.1:5);
k=0.05;
r=sqrt(x.^2+y.^2)
Private Nachricht senden Benutzer-Profile anzeigen


h.eser
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 27.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2016, 10:11     Titel:
  Antworten mit Zitat      
x=(-10:0.2:10);
y=(-5:0.1:5);
k=0.05;
r=sqrt(x.^2+y.^2)

z =cos(r).*(exp(-k*r))

so geht das
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.10.2016, 12:03     Titel: Re: Anfängerproblem Funktionswerte berechnen
  Antworten mit Zitat      
Hallo Pascal12,

Um gebnau zu sein:
Code:
function z = YourFcn()
x=(-10:0.2:10);
y=(-5:0.1:5);
k=0.05;
r=sqrt(x.^2+y.^2);
z = cos(r)*.(exp(-k*r));

Dies wird nun im CommandWindow oder aus einer anderen Funktion aufgerufen:
Code:
z = YourFcn();

Dabei kannst Du natürlich statt "YourFcn" einen hübscheren Namen verwenden.
Die Getting Started Kapitel der Dokumentation erklären, wie man Funktionen erstellt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Pascal12
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.10.16
Wohnort: Hessen
Version: R2014a
     Beitrag Verfasst am: 19.10.2016, 12:56     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antwort. Leider gibt Matlab die Funktionswerte immer noch nicht an.
Wieder der gleiche Fehler. Unexpected Matlab Operator.
Ich habe das jetzt ein wenig umgeschrieben und es wie folgt aus. Das funktioniert anscheinend. Jedoch möchte ich die Funktion in ein Ausdruck verfassen.
Code:
function k= z
x=-10:0.2:10
y=-5:0.1:5;
[X,Y]=meshgrid(x,y,'-');
r=sqrt(X.^2+Y.^2);
k=0.05;
a=cos(r);
b=(exp(-k.*r));
z=a.*b;
surf(z)


In der Aufgabe steht zudem noch, dass ich die Gitterlinien auf der berechneten Fläche unsichtbar mit dem Befehl linestyle des Surfache Objektes verändern soll.
Wie kann ich linestyle so einstellen. Habe viel probiert und nichts hat funktioniert.

Wäre dankbar um Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
Pascal12
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.10.16
Wohnort: Hessen
Version: R2014a
     Beitrag Verfasst am: 19.10.2016, 13:10     Titel:
  Antworten mit Zitat      
Habe es gerade gefunden mit dem linestyle.
Code:
surf(z,'linestyle','none')


Nur warum die Funktionswerte nicht in der einen Formel berechnet werden, weiß ich leider immer noch nicht.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.10.2016, 17:42     Titel:
  Antworten mit Zitat      
Hallo Pascal12,

Zitat:
Wieder der gleiche Fehler. Unexpected Matlab Operator.

Bitte poste die vollständige Fehlermeldung.

Zitat:
Jedoch möchte ich die Funktion in ein Ausdruck verfassen.

Was bedeutet das? An welche Art "Ausdruck" denkst Du da?

Zitat:
In der Aufgabe steht zudem noch, dass ich die Gitterlinien auf der berechneten Fläche unsichtbar mit dem Befehl linestyle des Surfache Objektes verändern soll.
Wie kann ich linestyle so einstellen. Habe viel probiert und nichts hat funktioniert.

Dann poste bitte, was du probiert hast. Es ist viel einfacher Deinen Code zu verbessern, als sich auszudenken, was Du wohl versucht hast.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Pascal12
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.10.16
Wohnort: Hessen
Version: R2014a
     Beitrag Verfasst am: 19.10.2016, 19:07     Titel:
  Antworten mit Zitat      
Hallo Jan,

Diese Fehlermeldung gibt Matlab mir an:
Error: File: functioni.m Line: 1 Column: 19
Unexpected MATLAB operator.

Bei dieser Funktion:
Code:
function i= cos(r)*.(exp(-k*r))
x=(-10:0.2:10);
y=(-5:0.1:5);
k=0.05;
r=sqrt(x.^2+y.^2)


Mit Ausdruck meine ich eigentlich, dass der Term "cos(r)*.(exp(-k*r))" direkt berechnet wird und nicht wie in meiner Lösung (die funktioniert) den einzelnen Termen Variablen zugeordnet sind.
Code:
function k= z
x=-10:0.2:10
y=-5:0.1:5;
[X,Y]=meshgrid(x,y);
r=sqrt(X.^2+Y.^2);
k=0.05;
a=cos(r);
b=(exp(-k.*r));
z=a.*b;


z ist ja gleich cos(r)*.(exp(-k*r))
aber nur unter den Variablen a und b

Das müsste doch auch direkt gehen.
Vielen Dank für die Hilfe

Gruß
Pascal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.10.2016, 12:29     Titel:
  Antworten mit Zitat      
Hallo Pascal12,

Wie Dir in diesem Thread bereits gezeigt wurde, ist diese Funktions-Definition falsch:
Code:

Operatoren sind in der Zeile, in der die Funktion definiert wird, nicht erlaubt. Ich kann nicht erraten, was Du damit bezweckst.

Zitat:
Mit Ausdruck meine ich eigentlich, dass der Term "cos(r)*.(exp(-k*r))" direkt berechnet wird und nicht wie in meiner Lösung (die funktioniert) den einzelnen Termen Variablen zugeordnet sind.

Ich verstehe nicht, was "direkt berechnen" bedeutet. Was möchtest Du denn als Ergebnis bekommen? Auch symbolisch lässt sich an diesem Ausdruck nichts vereinfachen.

Zitat:
z ist ja gleich cos(r)*.(exp(-k*r))
aber nur unter den Variablen a und b
Das müsste doch auch direkt gehen.

Wie gesagt: Ich habe keine Ahnung, worauf Du hinaus willst.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Pascal12
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.10.16
Wohnort: Hessen
Version: R2014a
     Beitrag Verfasst am: 20.10.2016, 12:52     Titel:
  Antworten mit Zitat      
Hallo Jan,

wie du sagst, können Operatoren die in der Zeile stehen, in der die Funktion definiert wird, nicht verwendet werden. Das wahr mein Gedankenfehler. Ich dachte ich könnte die function i dem Term cos(r)*.(exp(-k*r)) gleichstellen.
Das wusste ich nicht das in der Zeile , in der die Funktion definiert wir, Operatoren nicht erlaubt sind.
Danke für den Hinweis.

Ich wollte nur, dass er die Funktionswerte für die angegebenen Variablen errechnet.
War nur ein Versuch, Operatoren in der Funktionsdefinierung einzubringen. Ich dachte das würde gehen.

Das hat sich dann erledigt.

Vielen Dank für deine Mühe

Gruß
Pascal
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.