"""
function this = general_input(varargin)
this.name = 'multi_feature_stimulus';
this.abbrev = 'gen_inp';
this.description = 'input distribution with many features';
this.d = 4;
this.Tstim = -1; % if set to -1 we set Tstim to Tmax (in generate.m)
this.absrefract = 5e-3;
this.Fmax = 80;
this.Tpattern = 250e-3;
this.nSpB = 8;
this.Fburst = 330;
this.Fbase = 60;
this.Fdiff = 40;
this.Fpat = 40;
this.a = [0 0.3; 0.7 1.0];
this.b = [0 0.3; 0.7 1.0];
this.fback = [0.5 1; 3 5];
this.phi = [0.0 0.0];
this.events = { {'rs1' 1.0 [ 1 3 ]} {'bp1' 1.0 [0.000 0.369 0.833 0.249]} {'rs2' 1.0 [1 2]} {'pat1' 1.0 1} };
this.rndorder = 0;
for i=1:5
for j=1:this.d
st=0.005+cumsum(exponentialrnd(1/this.Fpat-0.005,1,20));
st(st>this.Tpattern) = [];
this.pattern(i).st{j} = st;
end
end
if nargin == 0
this = class(this,this.name);
elseif isa(varargin{1},this.name)
this = varargin{1};
else
this = class(this,this.name);
this = set(this,varargin{:});
end
"""
class