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

Hilfe, funktion heaviside funktioniert nicht

 

diablo
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2008, 22:39     Titel: Hilfe, funktion heaviside funktioniert nicht
  Antworten mit Zitat      
Hallo, ich bin ein absoluter Matlab newbie, hab grad folgenden code eingegeben (commando befehl)

syms x s Y
f=sym('f(x)');
f=heaviside(x-2);
ezplot(f,[0 10])

dann kommt in rot: error undefined function or variable heaviside.....

das komische, bei einem freund funktioneren diese Befehle ohne probleme...

an was liegt das ?

lg Diabloo
Private Nachricht senden Benutzer-Profile anzeigen


mr_endres
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 14.06.2008, 23:12     Titel:
  Antworten mit Zitat      
also bei mir funktioniert dein code.
wann kommt denn genau die fehlermeldung, erst wenn du ezplot aufrufst, das wäre merkwürdig. wahrscheinlich hast du dich nur vertippt, oder die heaviside funktion ist in deinem paket nicht enthalten, aber das wäre auch komisch

die zweite zeile brauchst du aber eigentlich nicht.
wenn du ezplot verwendest musst du auch nicht unbedingt symbolische variablen definieren, du kannst einfach einen string übergeben. funktioniert bei dir :

Code:

ezplot('heaviside(x-2)',[0 10])
 


mfg johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
diablo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2008, 07:37     Titel:
  Antworten mit Zitat      
hi,

der fehler kommt genau nachdem ich die zeile mit f= heaviside... eintippe..

nein, wenn ich das von dir versuche kriege ich

Error using ==> inlineeval

Error in inline expression ==> heaviside(x-2)

Undefined function or variable 'heaviside'.

Error in ==> D:\toolbox\matlab\funfun\@inline\feval.m

n line 34 ==> INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> D:\toolbox\matlab\specgraph\ezplot.m (ezplot1)
On line 377 ==> y = feval(f,x);

rror in ==> D:\toolbox\matlab\specgraph\ezplot.m
On line 124 ==> ezplot1(f{1},vars,labels,varargin{:});

Sad

lg Diabloo
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.06.2008, 07:51     Titel:
  Antworten mit Zitat      
Die Symbolic Math Toolbox hast Du ja offensichtlich, sonst hätte wohl schon syms einen Fehler geworfen.
Gib mal ein
Code:

Dann auf heaviside doppelklicken, rechte Maustaste, Open Selection.
Dann wird die Funktion heaviside im Editor geöffnet.
Klappt das?
Poste mal deren Inhalt.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
diablo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2008, 08:21     Titel:
  Antworten mit Zitat      
hi,

ich das gerade versucht:

>> which heaviside
heaviside not found.
>> which heaviside
heaviside not found.
>> which
??? Error using ==> which
Not enough input arguments.

(alles in der command line)
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.06.2008, 08:31     Titel:
  Antworten mit Zitat      
Dann hast Du die Datei heaviside.m, in der die Funktion definiert ist, nicht. Hast Du die evtl. gelöscht?

Als schnelle Lösung kannst Du im irgendwo Suchpfad von Matlab eine Datei heaviside2.m mit folgendem Inhalt anlegen:
Code:
function y=heaviside2(x)
y = (x >= 0);

Dann geht
Code:
ezplot('heaviside2(x-2)',[0 10])

Evtl. ist aber eine Neuinstallation wenigstens der Symbolic Math Toolbox angebracht. Vielleicht ist das ja was schiefgegangen.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
diablo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2008, 08:56     Titel:
  Antworten mit Zitat      
danke für deine Hilfe, hab jetzt einfach mal ne heaviside.m file erstellt mit deinem code und in ordner toolbox reingehaut.

aber wenn ich diesen ezplot befehl eintippe kommt jetzt das da :

Error using ==> inlineeval
Error in inline expression ==> heaviside2(x-2)
??? Undefined function or variable 'heaviside2'.

Error in ==> D:\toolbox\matlab\funfun\@inline\feval.m
On line 34 ==> INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> D:\toolbox\matlab\specgraph\ezplot.m (ezplot1)
On line 377 ==> y = feval(f,x);

Error in ==> D:\toolbox\matlab\specgraph\ezplot.m
On line 124 ==> ezplot1(f{1},vars,labels,varargin{:});

(das Diagramm fenster öffnet sich schon, nur sind keine graphen drinnen..)
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.06.2008, 08:59     Titel:
  Antworten mit Zitat      
Der Dateiname sollte so lauten wie der Funktionsname.

Wenn in der Datei also steht
function y=heaviside2(x)
dass muss die Datei auch heaviside2.m heißen.
heaviside2 habe ich es genannt, weil es ja heaviside eigentlich schon gibt.

Edit:
Ausserdem ist glaube ich der Ordner toolbox nicht im Suchpfad, im Gegensatz zu den Unterordnern.
Pack die Datei lieber in der work-Ordner.
Bei mir ist das z.B. F:\Programme\MATLAB\R2007b\work.
Du kommst daran, wenn Du in Matlab
Code:
schreibst.

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
diablo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2008, 09:14     Titel:
  Antworten mit Zitat      
SUPER !!

jetzt Funkts !!!

Big Thx, danke für deine tolle Hilfe !!!!! Razz Very Happy Surprised

wenn ich könnte würd ich dir nen orden umhängen Wink
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 - 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.