Options[plotMatice]={"barvaSitPred"->Red,"barvaSitPo"->Green,"barvaSipky"->Black}~Join~Options[Graphics];

plotMatice[mat:{{_,_},{_,_}},xka:{_?NumericQ,__?NumericQ},yka:{Repeated[_?NumericQ,{2,∞}]},opts:OptionsPattern[]]:=
Module[{body,sitPred,bodyTransf,sitPo,sipky1,sipky2,sipky3,sipky4},
body=Outer[List,xka,yka];
sitPred=Show[Graphics[{OptionValue["barvaSitPred"],Line/@Transpose[body],Line/@body}]];
bodyTransf=Map[mat.#&,body,{2}];
sitPo=Show[Graphics[{OptionValue["barvaSitPo"],Line/@Transpose[bodyTransf],Line/@bodyTransf}]];
sipky1=MapThread[Arrow[{##}]&,{body[[1]],bodyTransf[[1]]}];
sipky2=MapThread[Arrow[{##}]&,{body[[-1]],bodyTransf[[-1]]}];
sipky3=MapThread[Arrow[{##}]&,{body\[Transpose][[1]],bodyTransf\[Transpose][[1]]}];
sipky4=MapThread[Arrow[{##}]&,{body\[Transpose][[-1]],bodyTransf\[Transpose][[-1]]}];
Show[sitPred,sitPo,Graphics[{OptionValue["barvaSipky"],sipky1,sipky2,sipky3,sipky4}],FilterRules[{opts},Options[Graphics]]]
]

plotMatice[mat:{{_,_},{_,_}},opts:OptionsPattern[]]:=plotMatice[mat,Range[-2,2],Range[-2,2],opts];
plotMatice[mat:{{_,_},{_,_}},list_List,opts:OptionsPattern[]]:=plotMatice[mat,list,list,opts];

a=6;

Manipulate[plotMatice[{{x11,x12},{x21,x22}},PlotRange->{{-a,a},{-a,a}},Axes->True],{{x11,1},-2,2},{{x12,0},-2,2},{{x21,0},-2,2},{{x22,1},-2,2}]