Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Modellbildung und Simulation dynamischer Systeme

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variable ausgeben

 

Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 09:32     Titel: Variable ausgeben
  Antworten mit Zitat      
Hallo,

ich möchte in meinem Octave Programm mit mehreren Variablen (Zahlen) rechnen und diese am Ende auch als Variable ausgeben (sprich: Der Variable wird einfach nie ein Wert zugewiesen).

Wenn ich das aber mit global varName mache, dann z.B. mit 5 multipliziere (5*varName) und schließlich einfach ans = 5varName als Ausgabe haben will, kommt stattdessen ans = [](0x0).

Kann mir jemand dabei helfen, als Ausgabe den Variablennamen beizubehalten, also z.B. ans = 5varName als Ausgabe zu bekommen?

Danke!!

MfG Sebo


saxonfahrer
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 10:16     Titel:
  Antworten mit Zitat      
ein kurzer Code-Schnipsel wäre sehr hilfreich (lauffähig).

Allerdings versteh ich nicht warum du nicht gleich sowas machst wie

5varname=5*varname;

Willst du die Variablennamen quasi vom Skript generieren lassen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 10:23     Titel:
  Antworten mit Zitat      
Hier ein Code Schnipsel:
Code:
octave:106> global varName
octave:108> 5*varName
ans = [](0x0)

Ich möchte nicht dieses "[](0x0)" als Ausgabe, sondern "5*varName", sprich, die Variabele soll bei der Ausgabe eine Variable bleiben.
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 31.03.2009, 10:56     Titel:
  Antworten mit Zitat      
Hallo Sebo,

dafür brauchst du das Symbolic package. Dann musst Du die Variable nicht als global definieren, sondern als symbolische Variable:

Code:
varName=sym('varName');


Alle Angaben ohne Gewähr, ich habe selber kein octave. Eventuell brauchst Du " statt '.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 12:01     Titel: aber das ist doch soooo simpel
  Antworten mit Zitat      
Ich habe versucht, dieses package zu installieren, aber irgendwie will das nicht funktionieren... Wie auch immer - Ich denke, dass das doch auch ohne dieses package gehen muss. Ich will doch nur mit Variablen rechnen. Ich meine, das ist doch wirklich simpel.
 
saxonfahrer
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 12:38     Titel:
  Antworten mit Zitat      
und nochmal die Frage: wieso geht
Code:
5varname=5*varname


nicht??

Ich verstehe das Problem einfach nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 31.03.2009, 13:01     Titel:
  Antworten mit Zitat      
Hallo Sebo,

in Programmen wie Maple oder Mathematica ist das natürlich "sooo simpel". Matlab und Octave sind aber Programme zur numerischen Berechnung. Wenn man symbolisch, also mit Variablen rechnen will, dann muss man eben zu einem besonderen Produkt greifen. Für Octave ist das eben nicht "nur", sondern "speziell".

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 31.03.2009, 13:07     Titel:
  Antworten mit Zitat      
Hallo saxonfahrer,

durch den Code

Code:
5varname=5*varname


wird eine (numerische) Variable angelegt, die das Ergebnis der Berechnung auf der rechten Seite, also 5*varname, enthält. varname enthält aber keine Zahl, sondern ist leer, weil Sebo ihr keine Zahl zuweisen, sondern symbolisch mit ihr rechnen möchte. 5varname ist durch deinen Code also ebenfalls eine leere (numerische) Variable. Ziel ist aber, dass eine neue (symbolische) Variable in Abhängigkeit von varname entsteht, die eben abstrakt das 5-fache der (symbolischen) Variable varname repräsentiert.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 14:11     Titel:
  Antworten mit Zitat      
Vielen Dank! Kennst du eine kostenlose Maple Alternative?
Oder gibts evtl. doch eine Möglichkeit dies ohne zusätzliche Pakete im numerischen Matlab/Octave/Scilab & Co zu realisieren? Schließlich ist doch Matlab das non plus ultra (habe ich bis dahin zumindest immer gedacht...)

MfG Sebo
 
saxonfahrer
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 14:29     Titel:
  Antworten mit Zitat      
MATLAB ist Schrott wenns ums symbolische Rechnen geht. Da kommst du an Mathematica oder Maple nicht vorbei. MATLAB kann numerisch rechnen, mehr nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2009, 14:40     Titel:
  Antworten mit Zitat      
Danke euch!
Ich habe mal nach einer kostenlosen Maple/Mathematica Alternative gesucht, aber da gibt es ja sooo viel. http://en.wikipedia.org/wiki/List_of_numerical_analysis_software Kann mir da jemand was empfehlen?
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 31.03.2009, 15:22     Titel:
  Antworten mit Zitat      
Hallo Sebo,

schau lieber mal hier. "Numerical Analysis", also numerische Berechnungen willst Du ja gerade nicht, sondern ein Computer Algebra System, das symbolisch rechnet. Ich habe schon Gutes von Sage gehört, aber selber noch nicht damit gearbeitet.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.04.2009, 04:50     Titel:
  Antworten mit Zitat      
Hallo Bijick,
nach weiterem sehr langem Versuchen von symbolic, cln, gmp zu installieren hat dies dennoch nicht funktioniert. Aber: Ich habe jetzt festgestellt, kann doch mittels "" eine Variable eingeben.

Ein Beispiel:
Code:
octave:15> A=["2","3";"x","y"]
A =

23
xy

octave:17> B=["y","4";"y","8"]
B =

y4
y8

octave:19> C=A*B
C =

   12221    5456
   29161   13016

Frage: Wieso macht Octave aus meinen Variablen irgendwelche Zahlen? Sind das einfach die ASCII Codes? Das alles macht für mich einfach keinen Sinn...
 
Sebo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.04.2009, 04:53     Titel:
  Antworten mit Zitat      
http://math.unipune.ernet.in/free%2.....LABSymbolicOperations.pdf
Dieser Link hat mich darauf gebracht. Funktionieren wills aber leider trotzdem nicht. Ich kann zwar die Variablen schreiben, aber nicht damit rechnen...
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 02.04.2009, 15:40     Titel:
  Antworten mit Zitat      
Hallo Sebo,

Deine Variablen A und B sind vom Typ "String", also Textvariablen. Durch das Addieren, das bei Text im Normalfall nicht sinnvoll ist, werden die Zeichen tatsächlich in ihren Ascii-Wert umgewandelt und dann addiert.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.