num_params = 13; names = {'Leak' 'Na' 'K_{D}' 'A_{fast}' 'A_{slow}' 'H' 'Kv3' 'K' 'k_{Ca}' 'AHP' 'Ca_{f1}' 'Ca_{f2}' 'Ca_{s}'}; colors = 'ybgrcm'; files = dir('run*.mat'); num_files = size(files, 1); try, load Runs.mat; catch, disp('We apear not to have old data.') end; for file = 1 : num_files, try, freshen_data = run(file).read_on < datenum(files(file).date); catch freshen_data = true; end; if freshen_data, run(file).fitness = []; run(file).params = []; run(file).steps = []; load(files(file).name); run(file).read_on = now; max_gen = max(gen_alg_PY_delay(:,1)); run(file).gens = 0 : max_gen; [run(file).GENS trash] = meshgrid(run(file).gens, 1 : 100); for gen = 0 : max_gen, gen_start = min(find(gen_alg_PY_delay(:, 1) == gen)); gen_end = max(find(gen_alg_PY_delay(:, 1) == gen)); run(file).fitness(:, (gen + 1)) = gen_alg_PY_delay(gen_start : gen_end, end); for param = 1 : num_params, run(file).params(:, param, (gen + 1)) = gen_alg_PY_delay(gen_start : gen_end, param * 2); run(file).steps(:, param, (gen + 1)) = gen_alg_PY_delay(gen_start : gen_end, param * 2 + 1); %run(file).GENS(:, param, (gen + 1)) = gen_alg_PY_delay(gen_start : gen_end, 1); end; end; run(file).mean_params = shiftdim(mean(run(file).params), 1); run(file).std_dev_params = shiftdim(std(run(file).params), 1); run(file).mean_steps = shiftdim(mean(abs(run(file).steps)), 1); run(file).mean_fitness = mean(run(file).fitness); run(file).std_dev_fitness = std(run(file).fitness); end; end; save Runs.mat run for param_x = 1 : num_params, for param_y = param_x + 1 :num_params clf; hold on for file = 1 : num_files, gens = length(run(file).mean_fitness); [X Y Z] = cylinder(ones(1, gens)); for gen = 1 : gens, X(gen, :) = X(gen, :) .* run(file).std_dev_params(param_x, gen) + run(file).mean_params(param_x, gen); Y(gen, :) = Y(gen, :) .* run(file).std_dev_params(param_y, gen) + run(file).mean_params(param_y, gen); Z(gen, :) = Z(gen, :) .* run(file).mean_fitness(gen); end; %X = filter([0.5 0.5 0.5 0.5], [2], X, [], 1); %Y = filter([0.5 0.5 0.5 0.5], [2], Y, [], 1); c = colors(mod(file, 6) + 1); surf(X, Y, Z, 'FaceColor', c, 'EdgeColor', 'none', 'FaceLighting', 'Phong'); end; view([-45 30]); grid on; xlabel(char(names(param_x))); ylabel(char(names(param_y))); zlabel('Fit'); set(gcf, 'Color', [0.1 0.1 0.1]) set(gca, 'TickDir', 'out', 'Color', [0 0 0]); set(gca, 'XGrid', 'on', 'XColor', [1 1 1]); set(gca, 'YGrid', 'on', 'YColor', [1 1 1]); set(gca, 'ZGrid', 'on', 'ZColor', [1 1 1]); camlight left; axis vis3d uicontrol('Style', 'pushbutton', 'String', 'up','Position', [30 40 60 20], 'Callback', 'rotate([0 4])'); uicontrol('Style', 'pushbutton', 'String', 'left','Position', [0 20 60 20], 'Callback', 'rotate([-4 0])'); uicontrol('Style', 'pushbutton', 'String', 'right','Position', [60 20 60 20], 'Callback', 'rotate([4 0])'); uicontrol('Style', 'pushbutton', 'String', 'down','Position', [30 0 60 20], 'Callback', 'rotate([0 -4])'); uicontrol('Style', 'pushbutton', 'String', 'next','Position', [130 20 60 20], 'Callback', 'uiresume', 'BusyAction', 'cancel'); uiwait; end; end;