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

Eigene Konstanten (wie z.b. PI) definieren

 

Bernd Schmitt
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.01.11
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 25.01.2011, 12:35     Titel: Eigene Konstanten (wie z.b. PI) definieren
  Antworten mit Zitat      
Hallo,

ich würde gerne eigene Konstanten anlegen, die im weiteren Verlauf der Rechung nicht mehr verändert werden können. Ich weis, ich kann PI temporär auch verändern, aber ich würde gerne sicherstellen, das sich bestimmte variablen nicht verändern lassen. Also deklaration als Konstante eben.

Kann mir da jemand helfen? Danke...
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2011, 13:50     Titel:
  Antworten mit Zitat      
das geht wohl nicht

http://blogs.mathworks.com/loren/2006/09/13/constants/
Private Nachricht senden Benutzer-Profile anzeigen
 
Bernd Schmitt
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.01.11
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 25.01.2011, 14:00     Titel:
  Antworten mit Zitat      
Mhm... klingt erstmal so... werde mir das mal im detail durchlesen... Ist aber schade. Gerade wenn ein Projekt von mehreren Usern genutzt wird, wäre es nicht schlecht eigene Konstanten zu definieren. Ich finde es schon "recht kritisch" das man z.B. PI "einfach so" überschreiben kann. Man müsste um sicher zu gehen vor jedem gerbaucht PI aus dem Workspace löschen, dann hat es nämlich seinen eigentlich Wert zurück.

Naja, da muss die Sorgfalt eben umso größer sein, wobei mir eher die anderen Sorgen machen und nicht meine eigene Sorgfalt Wink.

Trotzdem danke für die schnelle Antwort...
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


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

Zitat:
Gerade wenn ein Projekt von mehreren Usern genutzt wird, wäre es nicht schlecht eigene Konstanten zu definieren.

Das geht ja leider in Matlab gar nicht. Die einzigen Namen, die nicht überschrieben werden können sind in ISKEYWORD aufgelistet, z.B. 'if', 'for', 'try' etc.

Das Zugreifen aus Variablen im Workspace ist schlicht unsicher. Sauberer ist es, alle Berechnungen innerhalb von Funktionen durchzuführen, bei denen man genau sehen kann, ob PI bereits definiert wurde - und wie. Wenn man dann noch keine EVALs verwendet um aus Versehen doch wichtige Variablen und Funktionen zu verdecken, und bei LOAD immer den Output in einer Variablen speicher statt sie direkt in den WorkSpace zu laden, kann kaum etwas schief gehen.

Wenn die Programme größer werden, sind nicht nur die Programmierkünste der Kollegen eine Gefahr, sondern ab 100.000 Zeilen Code kann ein Mensch nicht mehr zuverlässig einschätzen, was genau in welchem Programmteil passiert.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.01.11
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 26.01.2011, 11:00     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für deine Antwort, da kann man dir nur Recht geben... Wird aber schon schief gehen Razz

Gruß
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.01.2011, 11:28     Titel:
  Antworten mit Zitat      
Hallo,

wenn ein Team an einem oder mehreren größeren Projekten zusammenarbeiten soll, empfiehlt sich meiner Ansicht nach die Erstellung von Programmierrichtlinien.
Es kann durchaus sein, dass man diese Programmierrichtlinien im Laufe eines Projekts zusammenträgt (learning by doing/from errors), um sie dann auf weitere Projekte anzuwenden. Diese Programmierrichtlinien könnten dann eben auch enthalten, wie Konstanten zu definieren sind, z.B. mit vorangestelltem const, etwa
Code:
constPI = 3.1415927;
constPI = load('allconstants', 'PI');

Eine Alternative wäre, sich (wie in dem Forumsbeitrag vorgeschlagen) Funktionen zu schreiben, die die Konstanten liefern:
Code:
function E = constE()
E = 2.718282;

Diese sollten dann so aufgerufen werden:
Code:


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.