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

Unklare Warnmeldungen

 

Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 05.07.2012, 13:31     Titel: Unklare Warnmeldungen
  Antworten mit Zitat      
Ich bekomme in meinem Code zwei Warnungen, aus denen ich nicht recht schlau werde:
Zitat:
Code Analyzer cannot determine whether 'mod' is a variable or a function, and assumes it is a function.

Code Analyzer cannot determine whether 'interp1' is a variable or a function, and assumes it is a function.


Das Programm funktioniert einwandfrei, und eigentlich sind "mod" und "interp1" doch Standardfunktionen? Ich habe auch keine Variablen die so heißen.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.07.2012, 18:07     Titel:
  Antworten mit Zitat      
Hallo,

ich muss sagen, ich habe diese Meldungen noch nie gesehen.

Rückfragen, um dir weiterhelfen zu können:
- Welches Release verwendest du?
- Kannst du Codebeispiele geben, die diese Meldungen erzeugen?

Wenn du davon überzeugt bist, dass an diesen Stellen kein Problem vorliegt, kannst du die Meldungen unterdrücken, indem du auf das orange unterlegte rechts-klickst und oben eine der Suppress-Optionen ("in all files" würde ich nicht nehmen) auswählst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 06.07.2012, 07:54     Titel:
  Antworten mit Zitat      
Es klingt stark danach, dass du eine Variable mit dem gleichen Namen verwendest, aber wenn du sagst, du hast keine, dann ist diese Fehlermeldung etwas eigenartig Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 06.07.2012, 08:25     Titel:
  Antworten mit Zitat      
Nein, Variablen mit dem gleichen Namen habe ich definitiv nicht, dass ist mir nur bei "alpha" passiert.

Inzwischen habe ich diese Fehlermeldung bei jeder Funktion, aber nur wenn ich sie das erste Mal aufrufe. Wenn sie mehrmals verwendet wird, wird nur die erste Verwendung markiert.

Beispiele:
Code:
A = zeros(1,length(I));   % Beschwerde bei "zeros" und "length"
[...]
v_tan   = 2 * pi * x_inter * r * n;   % Beschwerde bei "pi" (x_inter ist ein Vektor, der Rest ist skalar)
 


Die Fehlermeldung taucht auch im Quelltext von Matlab-internen Funktionen auf, bspw. in "axis" (siehe Anhang).

Die Fehlermeldung lautet immer:
Code Analyzer cannot determine whether 'FUNKTIONSNAME' is a variable or a function, and assumes it is a function.

Grundsätzlich kann ich die Fehlermeldung zwar ausschalten, ich wüsste aber trotzdem gerne warum sie bei mir angezeigt wird.

Fehlermeldung axis.PNG
 Beschreibung:

Download
 Dateiname:  Fehlermeldung axis.PNG
 Dateigröße:  21.57 KB
 Heruntergeladen:  514 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 06.07.2012, 08:34     Titel:
  Antworten mit Zitat      
Hab jetzt mal im Internet nachgesehen. Viel ist ja nicht dazu zu finden. Das Einzige was ich da jetzt gesehen habe ist, dass man eventuell die Variable initialisieren sollte oder so. Vielleicht hilft es dir ja was:

Zitat:
Distinguish Function Names from Variable Names. Code analysis cannot always distinguish function names from variable names. For the following code, if the Code Analyzer message is enabled, code analysis returns the message, Code Analyzer cannot determine whether xyz is a variable or a function, and assumes it is a function. Code analysis cannot make a determination because xyz has no obvious value assigned to it. However, the program might have placed the value in the workspace in a way that code analysis cannot detect.

function y=foo(x)
.
.
.
y = xyz(x);
end

For example, in the following code, xyz can be a function, or can be a variable loaded from the MAT-file. Code analysis has no way of making a determination.

function y=foo(x)
load abc.mat
y = xyz(x);
end

Variables might also be undetected by code analysis when you use the eval, evalc, evalin, or assignin functions.

If code analysis mistakes a variable for a function, do one of the following:

Initialize the variable so that code analysis does not treat it as a function.

For the load function, specify the variable name explicitly in the load command line. For example:

function y=foo(x)
load abc.mat xyz
y = xyz(x);
end


Link zur Hilfe: http://www.mathworks.de/help/techdoc/matlab_env/brqxeeu-151.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 06.07.2012, 08:40     Titel:
  Antworten mit Zitat      
Ja das könnte passen. Letztendlich muss ich mich da also nur drum kümmern wenn Matlab etwas falsch interpretiert...

Ich könnte natürlich auch grundsätzlich alle Variablen vorher definieren...

Nee, da schalte ich die Meldung lieber aus Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 06.07.2012, 08:41     Titel:
  Antworten mit Zitat      
Finde ich trotzdem eigenartige diese Meldung Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.07.2012, 09:36     Titel:
  Antworten mit Zitat      
Hallo,

bei meiner MATLAB-Version ist diese Meldung standardmäßig ausgeschaltet. Das kann allerdings daran liegen, dass ich auch vorherige Releases installiert habe und Einstellungen von dort übernommen wurden.

Das zugrundeliegende Problem ist, dass z.B. die Syntax für Funktionsaufrufe und Indizierung in MATLAB gleich ist, so dass folgendes schwer unterschieden werden kann:
Code:
vektor(index)
funktion(input)


Meiner Meinung nach kann man hier ausnahmsweise guten Gewissens "suppress in all files" auswählen. Bei Bedarf wieder anwählen kann man das unter File --> Preferences bei Code Analyzer.

Grüße,
Harald
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.