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

Prozentuale Veränderung ausgeben

 

Stefan999

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2012, 13:18     Titel: Prozentuale Veränderung ausgeben
  Antworten mit Zitat      
Hey,

ich hab da ein Problem. Ich hab folgendes Programm erstellt:

Code:

function Keynes
global c0 c1 I0 G0 t;
clc;
auswahl='a';
while ~(strcmp(auswahl,'n') || strcmp(auswahl,'N'))
clc;
fprintf('Bitte schließen Sie jede Eingabe mit der Returntaste ab!\n\n');
c0=input('Bitte geben Sie einen Wert für den Parameter c0 ein! ');
c1=input('Bitte geben Sie einen Wert für den Parameter c1 ein! ');
I0=input('Bitte geben Sie einen Wert für die exogene Variable I0 ein! ');
G0=input('Bitte geben Sie einen Wert für die exogene Variable G0 ein! ');
t=input('Bitte geben Sie einen Wert für den exogenen Parameter t ein! ');
fprintf('\nDas gleichgewichtige Einkommen berechnet sich mit Hilfe der Prozedur tsolve:\n\n');
Y0=input('Bitte geben Sie dazu einen Startwert für Y ein! ');

[Ys,fval,exitflag]=tsolve(@KK,Y0);

if exitflag==1;
    fprintf('\nDas Gleichgewichtseinkommen bei Investitionen in Höhe von %0.2f\n', I0);
    fprintf('und Staatsausgaben in Höhe von %0.2f beträgt %0.2f.\n', G0,Ys);
    fprintf('\nDer Budgetsaldo ist %0.2f.\n', t*Ys-G0);
else
    fprintf('Achtung es konnte keine Lösung gefunden werden');
end

fprintf('\nWenn Sie keine weitere Simulation durchführen wollen,\n');
fprintf('tippen Sie N ein, ansonsten drücken Sie jede beliebige\n');
fprintf('andere Taste!\n')
auswahl=input('','s');
end;
end
 


Meine Frage ist, wie ich die prozentuale Veränderung des Gleichgewichtseinkommens und Budgetsaldos ausgebe, wenn sich der Anwender für eine erneute Simulation entscheidet?

Gruß
Stefan


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.01.2012, 23:23     Titel:
  Antworten mit Zitat      
Hallo,

alten Wert in einer Variable speichern, und dann die Veränderung berechnen. Wo genau ist das Problem?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
K11

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2012, 21:11     Titel:
  Antworten mit Zitat      
Code:




Hi,

ich glaub das Problem ist die Ausgabe bzw das Zugreifen auf die Elemente bei der while-schleife. Bei der If-schleife geht das ja anders.

Gruß,

K11
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.01.2012, 00:03     Titel:
  Antworten mit Zitat      
Hallo,

ich sehe da keinen großen Unterschied.

Man muss folgendes machen:
1. Falls alter Wert vorhanden, Vergleich durchführen
2. alten Wert durch neuen ersetzen

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
vi1111
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 23:38     Titel:
  Antworten mit Zitat      
Harald, als ob das nicht verständlich ist, dass die Variablen miteinander zu vergleichen sind, um die prozentuale Veränderung auszurechnen. Die Frage bezieht sich darauf, wie man es hinkriegt, die Variable beim ersten durchlauf zu speichern und mit der zweiten dann zu vergleichen, weil die Variable sich sonst überschreiben würde. Wenn man keine präzise Antowrot kennt, bzw. sagen will, dann kann man es gleich sein lassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.01.2012, 00:03     Titel:
  Antworten mit Zitat      
Hallo vi,

ich sehe den Sinn des Forums nicht unbedingt darin, die fertige Antwort zu liefern, sondern eher darin, den Fragesteller zur Lösung des Problems hinzuführen. Meiner Erfahrung nach sieht das eine überwiegende Mehrheit der Nutzer dieses Forums genauso. Gelegentliche Ausnahmen sind u.a. Leute, die gerne ihre Hausaufgaben gemacht bekommen wollen.

Falls du der Fragesteller bist:
Für mich ist das natürlich verständlich, wie man Variablen vergleicht. Für mich ist es allerdings ebenso natürlich, dass man, wenn eine Variable nicht überschrieben werden soll, die Daten eben in einer anderen Variable ablegt.

Da du gar so nett und freundlich fragst, hier ein Beispiel, das sogar Hinweise auf eine nettere Benutzerführung enthält:
Code:
xold = NaN;
answer = 0;
while answer ~= 2
    xnew = inputdlg('Bitte neues x eingeben:');
    xnew = str2double(xnew{1});
    if ~isnan(xold)
        change = (xnew-xold)/xold*100;
        fprintf('Die Änderung ist %.2f Prozent. \n', change)
    end
    xold = xnew;
    answer = menu('Noch einen Durchlauf?', 'Ja', 'Nein');
end


Falls du nicht der Fragesteller bist:
Meinst du, mit deiner Antwort ist dem Fragesteller mehr geholfen? Falls nicht, solltest du dich an deinen letzten Satz halten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.01.2012, 13:27     Titel:
  Antworten mit Zitat      
Hallo vi1111,

Es ist in diesem Forum üblich auch Antworten zu geben, die den Fragenden in die richtige Richtung weisen. Dies hat einen großen Vorteil: Wenn man nämlich ein "fertiges" Programm postet, sind darin mit an Sicherheit grenzender Wahrscheinlichkeit die Namen der Variablen, deren Dimensionen oder auch Typen nicht mit den Orginal-Variablen identisch. Dann muss der Fragende das gepostete Programm anpassen - und dies ist sehr fehleranfällig.
Deshalb können Programme, die das Problem "fast" lösen deutlich hinderlicher sein, als sinnvolle Vorschläge.

Ohne Zweifel ist Harald sehr gut darin, sinnvolle Vorschläge zu geben. Wenn er keinen konkreten Code postet, hat das immer einen guten Grund.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
vi1111
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2012, 22:08     Titel:
  Antworten mit Zitat      
Hallo Harald!

Vielend Dank für die Mühe zum Erklären anhang eines Beispiels! Somit ist es eher verständlich, wie man die Variablen vergleicht.
Somit erhält der User gleich nicht nur einen guten Tipp, sondern auch ein Beispiel.

Ich finde schon, dass mein Beitrag geholfen hat, hat dich ja schließlich dazu bewegt, ein Beispiel zu machen. Smile

Gruß
vi
Private Nachricht senden Benutzer-Profile anzeigen
 
vi1111
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2012, 22:18     Titel:
  Antworten mit Zitat      
Hallo Jan S,

K11 hatte ja hingewiesen, dass ihm nicht klar ist, wie man die Variable speichert und sie dann ausgibt ("das Problem ist die Ausgabe bzw das Zugreifen auf die Elemente bei der while-schleife"). Deswegen fand ich die ersten zwei Tipps von Harald nicht, dass sie einen vorwärts bringen.

Dann weiß ich bescheid, dass man hier hinweisen sollte, mit der Bitte, das Problem anhang eines Beispiels zu erklären.

Gruß
vi
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 - 2025 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.