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

3 bzw. mehrere veränderbare Variablen in einem 2D Plot

 

fruttidimare
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2021, 20:26     Titel: 3 bzw. mehrere veränderbare Variablen in einem 2D Plot
  Antworten mit Zitat      
Guten Abend,

als absoluter Anfänger habe ich mich in den letzten Tagen schon mal ein wenig vorgehantelt. Leider bin ich an einem Punkte angelangt, wo ich nicht mehr weiter komme.

Ich möchte einen 2D-Plot erstellen, welcher in der X-Achse die Zeit (in meinem Fall Jahre n von 1 bis 50) und auf der Y-Achse Kosten in € darstellt.

Konkret geht es um eine dynamische Lebenszykluskostenrechnung indem unter anderem der Kalkulationszinssatz i enthalten ist. Dabei möchte ich i zwischen 1 und 5 % in der Schrittweite 1 für jedes Jahr variieren lassen.

Das hätte ich mit folgendem Code auch geschafft:

Code:
CC=10000;

for n = 1:1:50
 
   for i= 1:1:5        
       C(n,i)=CC*(1+i/100)^n
       
   end
 
end

plot(C)



Nun meine Frage:
Ich möchte nun auch noch zusätzlich 3 weitere Variablen (wie z.B. Preissteigerungsrate, Energiepreis etc.) in der Formel für C haben. Wenn ich jedoch mit einer weitere for-Schleife j einführe, dann kommt die Fehlermeldung, dass die Daten mehr als 2 Dimensionen haben. Das Problem dahinter verstehe ich, und ich bin gerade dabei mich in Arrays bzw. Meshes einzulesen.

Code:
CC=10000;

for n = 1:1:50
 
   for i= 1:1:5
       
       for j= 1:1:5
           
       C(n,i,j)=CC*(1+i/100)^n/(1+j/100)
       
        end
   end
end

plot(C)



Könnte mir dazu jemand einen Tipp geben? Gerne auch den richtigen Suchbegriff, falls es nicht mit Arrays oder Meshes zu lösen ist.

Vielen Dank im Voraus.
LG Marco
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 28.02.2021, 14:53     Titel:
  Antworten mit Zitat      
Mit plot kannst du nur zwei-dimensional darstellen. X-Y.

Du könntest für jedes j (3. Dimension) einen eigenen Plot erstellen.

Code:
plot([1:50],C(:,:,1))
plot([1:50],C(:,:,2))
plot([1:50],C(:,:,3))
plot([1:50],C(:,:,4))
plot([1:50],C(:,:,5))


Lässt sich auch per Schleife lösen.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
fruttidimare
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2021, 11:41     Titel:
  Antworten mit Zitat      
Danke für die Rückmeldung.

Hab es noch nicht versucht umzusetzen, da ich glaube, dass dies nicht die eleganteste Art ist das zu lösen.
Wie würde ich dann mit der 4ten, 5ten oder 6ten Dimension umgehen? Das sprengt ja die Anzahl an plot-befehlen und wäre nicht mehr überschaubar.

Trotzdem nochmals danke für deine Rückmeldung.
LG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
fruttidimare
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2021, 08:35     Titel:
  Antworten mit Zitat      
Liebe alle,

ich bin bei meinem Problem wieder etwas weiter gekommen.

Code:

a=5:5;
b=0:5;
c=0:10;
d=0:10;
e=0:8;
permutations=combvec(a, b, c, d, e).';

herstellungskosten=374813;
nutzkosten=1;

hold on
% for i=1:size(permutations, 1)
for i=1:100
a=permutations(i, 1);
b=permutations(i, 2);
c=permutations(i, 3);
d=permutations(i, 4);
e=permutations(i, 5);
fn=@(n) herstellungskosten * (1+a/100)^n/(1+b/100)^n + nutzkosten * (1+c/100)^n/(1+d/100)^n;
fn=@(n) herstellungskosten * (1+a/100)^n

fplot(fn, [0 50])

end
hold off


Somit schaffe ich nun mal die Kombinationen der Variablen (ca. 50000 Permutationen) darzustellen und es mir werden alle Linien (in diesem Fall i=100 Stück) geplottet.

Nun möchte ich gerne einen Wert an einer konkreten Stelle n (z.B. n=10) hinzufügen. In dem Plot sollte es dann an der Stelle n=10 bei allen Permutationen einen Sprung im Liniendiagramm geben.

Leider schaffe ich es nicht zu fn=@(n)... nur an einer Stelle n etwas dazu zu addieren.
Kann mir bitte jemand helfen?

Vielen Dank im Voraus.
LG Marco
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.