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?
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.
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.
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.
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.
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
Einstellungen und Berechtigungen
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
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.