exp2 kernel error in cvx_foopsi
jrclimer opened this issue · 6 comments
Please note that the developer of this package is on leave until January 2019 and might not be able to support you.
For better support, please use the template below to submit your issue. When your issue gets resolved please remember to close it.
- Describe the issue that you are experiencing
Cannot use exp2 kernel for deconvolution. When I try to run deconvolveCa I run into errors.
- Copy error log below
[c,s,options] = deconvolveCa(y,'exp2','optimize_pars','optimize_b');
Error using .* (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {positive constant}
Error in * (line 36)
z = feval( oper, x, y );
Error in cvx_foopsi (line 27)
norm(y(keep)-c2(keep)-b-c1*gd_vec(keep))<=sqrt(sum(keep))*sn;
Error in constrained_foopsi (line 178)
[c(:,rep),bas(rep),cin(rep)] = cvx_foopsi(y,b,c1,sn,b_lb,g,w_,~mis_data);
Error in deconvolveCa (line 118)
[cc, options.b, c1, options.pars, options.sn, s] =
constrained_foopsi(y,[],[],options.pars,options.sn, ...
- If you're not reporting an error, type your message below
@jrclimer It appears you cannot use the combination of 'exp2'
model with the default method 'constrained_foopsi'
. You can change either the 'exp2'
to 'ar2'
and/or choose the thresholded
method by passing 'method', 'thresholded'
after the model. Does that work?
@jrclimer What error do you get if you try the following?
deconvolveCa(y, 'exp2', 'method', 'thresholded', 'optimize_pars', 'optimize_b');
@jrclimer Note that the two methods are equivalent when you're learning the kernel but 'ar2'
is also faster.
You can recover the 'exp2'
kernel stored in options.pars
if you run deconvolution with 'ar2'
and then compute
filter(1,[1,-options.pars'],[1,zeros(1,N-1)])
where N
is the length of the exp2
kernel