Kdyby nekdo chtel vykreslovat ganttuv diagram jako maji v pdfku, tak muzete pouzit tuto funkci:
function gantt( s, p, r, Cmax ) %GANTT Summary of this function goes here % Detailed explanation goes here x = r(s(1)); y = 0; height = 2; hold on; colors = ['r' 'g' 'b' 'y' 'm' 'c']; axis([x-1, Cmax+1, y, height + 1]); % create boxes for i=1:length(p) rectx = [x, x, x+p(s(i)), x+p(s(i)), x]; recty = [y, height, height, y, y]; fill(rectx, recty, colors(mod(i, length(colors)))); text(x + p(s(i))/2, y + height/2, ['\bf T_' num2str(s(i))], 'color', 'k'); x = x+p(s(i)); end; hold off; end
Pro korektní zobrazení lze použít funkce z Torsche. Vektor s má podle našeho cvičícího obsahovat časy, kdy začnou jednotlivé úlohy, nikoli pořadí úloh. Výše uvedená funkce dává správný graf jen pro případy, kdy na sebe úlohy těsně navazují. Například pro p=[2,1,2,2] r=[4,8,12,0] d=[20,20,20,20] zobrazí nesmysl.
T = taskset(p); T.ReleaseTime = (r); T.Deadline = (d); for i=1:length(s) T.Name(i) = ['T' num2str(i)]; end T.add_schedule('ko du bratley',s,T.ProcTime,ones(1,length(s))); plot(T);