error + matrix dimension must agree

I got error -- Error using + Matrix dimensions must agree.
on this code. Please help me
a=sign(X(ind1)).*(abs(X(ind1))-T);
b=abs(X);
c=plus(a,b);

 Réponse acceptée

Mischa Kim
Mischa Kim le 16 Mar 2014
Modifié(e) : Mischa Kim le 16 Mar 2014
Nik, X and T need to be same-sized vectors unless T is a scalar.
What are you trying to do in
a = sign(X(ind1)).*(abs(X(ind1))-T);
especially w.r.t. T?

3 commentaires

i'm trying to add the hard threshold with soft threshold value. the original hard threshold func is:
function op=hthresh(X,T);
ind=find(abs(X)<=T);
X(ind)=0;
op=X;
and the soft threshold is:
function op=sthresh(X,T);
ind=find(abs(X)<=T);
ind1=find(abs(X)>T);
X(ind)=0;
X(ind1)=sign(X(ind1)).*(abs(X(ind1))-T);
op=X;
now, im trying to get the average of absolute value of this 2 function:
function op=avthresh(X,T);
a=sign(X(ind1)).*(abs(X(ind1))-T);
b=abs(X);
c=plus(a,b);
d= abs(c);
X(ind1)= d/2;
op=X;
which I got error matrix dimension must agree.
Then, I change it to this one, it works but then the image and PSNR value is very bad..
function op=avthresh(X,T);
a=sign(X(ind1)).*(abs(X(ind1))-T);
b=numel(a);
c=abs(X);
d=numel(c);
e=plus(b,d);
f=abs(e/2);
X(ind1)=f;
op=X;
seek for your advice.. tq in advance
Mischa Kim
Mischa Kim le 18 Mar 2014
What are the sizes of X and T? Is T a scalar?
Nik
Nik le 19 Mar 2014
Modifié(e) : Nik le 19 Mar 2014
Sir Mischa, T is:
M=size(pic,1)^2;
T=sig*sqrt(2*log(M));
while X is the wavelet coefficient value. TQVM.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by