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

Fehlermeldung interpretieren

 

xylofottl
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2009, 22:45     Titel: Fehlermeldung interpretieren
  Antworten mit Zitat      
Hallo.
Will die Schiefe einer nichtidealen Glockenkurve berechnen mit folgendem Code:
Code:
function schi=schiefe(theta,dichteF,sigmasquare)

for i=1:length(dichteF)
   schidist(i)=((theta(i)-1)^3)*dichteF(i);
endfor

schi=(sigmasquare^(-2-(2/3)))*sum(schidist)


Das hier sagt mir octave als Fehlermeldung:
Zitat:
error: for A^b, A must be square
error: evaluating binary operator `^' near line 7, column 18
error: evaluating binary operator `*' near line 7, column 30
error: evaluating assignment expression near line 7, column 5


Wie soll ich denn "A must be square" verstehen??
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 01.05.2009, 00:20     Titel:
  Antworten mit Zitat      
Versuchs mal mit den elementweisen Operatoren: .*, ./ bzw. .^
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
xylofottl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.05.2009, 00:25     Titel:
  Antworten mit Zitat      
Wenn ich
Code:
schi=(sigmasquare.^(-2-(2/3)))*sum(schidist)
schreibe,
bekomme ich keine Fehlermeldung und als Antwort:
Zitat:
schi = [](0x0)


Verstehe aber eh nicht so ganz, warum ich das hätte tun sollen?? Bzw habe ich es da eingesetzt, wo du gemeint hast?? Dies ist die jedenfalls betreffende Zeile 7.

Zuletzt bearbeitet von xylofottl am 01.05.2009, 00:44, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 01.05.2009, 00:38     Titel:
  Antworten mit Zitat      
Das die Fehlermeldung nicht mehr auftaucht, heisst doch dass du die entsprechende Stelle im Code gefunden hast. Es ist ein Unterschied zwischen .^ und ^, wenn man mit Matrizen statt mit Skalaren arbeitet. Der Unterschied sollte dir zukünftig bewusst sein.

Bleibt die Frage, wie rufst du die Funktion auf? Mit welchen Eingangsparametern? Hast du die Funktion schon mal debugged und dir die Zwischenwerte der einzelnen Variablen angeschaut?
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
xylofottl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.05.2009, 00:45     Titel:
  Antworten mit Zitat      
Das Ding ist nur: "sigmasquare" ist ein Skalar.

Funktion debuggen??


Das ist übrigens das zu implementierende DIng:

und ich muß natürlich noch das dtheta diskretisieren, was aber sicher nicht der Fehler ist.


also hier nochmal der code:
Code:
function schi=schiefe(theta,dichteF,sigmasquare)

for i=1:length(theta)-1
   deltat(i)=theta(i+1)-theta(i);
endfor
deltat(length(theta))=theta(1);

for i=1:length(dichteF)
   schidist(i)=((theta(i)-1)^3)*dichteF(i)*deltat(i);
endfor

schi=(sigmasquare^(-2-(2/3)))*sum(schidist)
endfunction


Zuletzt bearbeitet von xylofottl am 01.05.2009, 01:00, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 01.05.2009, 00:55     Titel:
  Antworten mit Zitat      
Keine Ahnung ob es das bei Octave gibt, aber im Matlab-Editor kann man Breakpoints setzen und sich die Variablenbelegung zu jedem Zeitpunkt anschauen.

Lass dir einfach vor der Berechnung in der entsprechenden Zeile, die verwendeten Variablen ausgeben und teste dann die Zeile im normalen Command Window per Hand.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
xylofottl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.05.2009, 01:09     Titel:
  Antworten mit Zitat      
Achja, so ne systematische Fehlersuche hat was....der Fehler lag in nem Tippfehler in einer der tausend anderen Funktionen.

Die Schiefe ist also 3.7, für den, der's wissen will Very Happy Very Happy

Bringt hoffentlich die Routine mit sich, auch systematisch nach Fehlern zu suchen....danke auf jeden Fall für den late-night support....
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.