Verfasst am: 11.04.2014, 23:22
Titel: in PDF plotten
Hallo
Ich möchte für eine Prüfung ein cheat sheet erstellen (ist open book, somit legal) und dachte dabei an Matlab. Es geht um folgendes.
Ich möchte 1/[(1+i)^n] für verschiedene i und n berechnen und in einem pdf plotten.
i sollte von 0.01, 0.02, 0.03 bis 0.30 gehen und n von 1 bis 10.
Hier einmal eine kleine grafische Darstellung wie ich das PDF gerne haben möchte.
Code:
(i = 0.01, n = 1)(i = 0.02, n = 1)(i = 0.03, n = 1) (i = 0.01, n = 2)(i = 0.02, n = 2)(i = 0.03, n = 2) .... .... .....
(i = 0.01, n = 10)(i = 0.02, n = 10)(i = 0.03, n = 10)
(i = 0.04, n = 1)(i = 0.05, n = 1)(i = 0.06, n = 1) (i = 0.04, n = 2)(i = 0.05, n = 2)(i = 0.06, n = 2) .... .... .....
(i = 0.04, n = 10)(i = 0.05, n = 10)(i = 0.06, n = 10)
Vielen Dank. Das Problem ist jetzt aber noch, dass die Tabelle nur ganz klein ist. Ich sehe da nur ein Feld und es hat dafür Scrollbars. Ich möchte keine Scrollbars, da ich die Tabelle ja ausdrücken möchte.
Zitat:
Wäre aber schön, auch auf Vorschläge einzugehen und diese zu nutzen..
Du hast mir ja empfohlen eine table zu benutzen, das habe ich ja gemacht.
ich kann mir höchstens vorstellen, dass man Position von Figure und uitable so weit vergrößert, dass es eben passt. Ggf. kann es auch helfen, die Schriftgröße kleiner zu machen.
Code:
f = figure('name','1/[(1+i)^n]','NumberTitle','off','Units', 'Normalized',...
'Position',[0011]);
rnames = [];
date = [];
for i = 1:30
rnames = [rnames; {sprintf('interest %i%%',i)}]; %#ok<*AGROW>
for j = 1:10 if j == 1 date = [date, 1 / ((1 + (i / 100))^j)];
else date = [date, 1 / ((1 + (i / 100))^j)];
end end end % date=[2 , 3 ; 4 ,7 ];
cnames = {'year 1','year 2','year 3','year 4','year 5','year 6','year 7','year 8','year 9','year 10'};
t = uitable('Data',reshape(date, 30, 10),'ColumnName',cnames,...
'RowName',rnames,...
'Parent',f,'Units', 'Normalized','Position',[0.050.050.90.9]);
Hmm es scheinen, dass die Felder der Tabelle falsch berechnet wurden, scheint als wären sie irgendwie transponiert. Ich muss mir das morgen noch einmal anschauen. Ich melde mich dann wieder.
man muss ja an uitable eine Matrix übergeben. Ich habe einfach deinen Datenvektor in eine Matrix umgeformt, aber gescheiter wäre es sicher, von vorneherein eine Matrix anzulegen.
Code:
date = zeros(i,j);
for i = 1:30
rnames = [rnames; {sprintf('interest %i%%',i)}]; %#ok<*AGROW>
for j = 1:10 if j == 1% warum eigentlich die Fallunterscheidung?? date(i,j) = 1 / ((1 + (i / 100))^j);
else date(i,j) = 1 / ((1 + (i / 100))^j);
end end end
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.