Code covered by the BSD License  

Highlights from
Digital Karma: State Graphing

image thumbnail
from Digital Karma: State Graphing by Aman Siddiqi
Evolutionary Simulation, Interaction Graph

insert_matrix.m
evaluate_changer;
if exist('changer');
[changerrows, changercols, changerplanes]=size(changer);
    
clear acolumnsinserttemp;
run computeiterations; historystillunchangeable=0;
if currentlyselecting==1;
    run save_undo;
    if strcmp(insertvalue,'iterations');
        if dimension==1 & changersafety==0;
            insertedrows=zeros(selectedendrow2-selectedoriginrow2+1,columns);
            insertedrows(1:end,1:end)=changer;
            a=cat(1,a(1:selectedoriginrow2,:),insertedrows,a(selectedoriginrow2+1:end,:));
            totaliterationscompleted=totaliterationscompleted+(selectedendrow2-selectedoriginrow2+1);
        elseif dimension==2 & changersafety==0
            computeiterations;
            insertediteration=zeros(totalrows,columns);
            insertediteration(1:end,1:end)=changer;
            a=cat(3,a(:,:,1:selectedoriginiteration2),insertediteration,a(:,:,selectedoriginiteration2+1:end));
            computeiterations;
            totaliterationscompleted=totaliterationscompleted+(selectedoriginiteration2-selectedoriginiteration2+1);
        else
            historystillunchangeable=1;
        end;
    elseif strcmp(insertvalue,'rows');
        if dimension==1 & changersafety==0;
            insertedrows=zeros(selectedendrow2-selectedoriginrow2+1,columns);
            insertedrows(1:end,1:end)=changer;
            a=cat(1,a(1:selectedoriginrow2,:),insertedrows,a(selectedoriginrow2+1:end,:));
            totaliterationscompleted=totaliterationscompleted+(selectedendrow2-selectedoriginrow2+1);
        elseif dimension==2 & changersafety==0
            computeiterations;
            insertedrows=zeros(selectedendrow2-selectedoriginrow2+1,columns);
            insertedrows(1:end,1:end)=changer;
            for currentplane=1:completediterations+1
                acolumnsinserttemp(:,:,currentplane)=cat(1,a(1:selectedoriginrow2,:,currentplane),insertedrows,a(selectedoriginrow2+1:end,:,currentplane));
            end;
            a=acolumnsinserttemp; computeiterations;
        else
            historystillunchangeable=1;
        end;
    elseif strcmp(insertvalue,'columns');
        if dimension==1 & changersafety==0;
            insertedcolumns=zeros(completediterations+1,(selectedendcol2-selectedorigincol2+1));
            insertedcolumns(1:end,1:end)=changer;
            a=cat(2,a(:,1:selectedorigincol2),insertedcolumns,a(:,selectedorigincol2+1:end));
        elseif dimension==2 & changersafety==0
            computeiterations;
            insertedcolumns=zeros(totalrows,(selectedendcol2-selectedorigincol2+1));
            insertedcolumns(1:end,1:end)=changer;
            for currentplane=1:completediterations+1
                acolumnsinserttemp(:,:,currentplane)=cat(2,a(:,1:selectedorigincol2,currentplane),insertedcolumns,a(:,selectedorigincol2+1:end,currentplane));
            end;
            a=acolumnsinserttemp; computeiterations;
        else
            historystillunchangeable=1;
        end;
    end;    
else;
    errordlg('Make Selection','Error');
end;
currentlyselecting=0; run computeiterations; currentiteration=completediterations;
run opening_iteration; run CA_Display;
if historystillunchangeable==1; errordlg('Must Deactivate ''History Unchangeable'' under Settings','Error'); end;

else;
    errordlg('Enter new row value in Input Box','Error');
end;

Contact us at files@mathworks.com