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);

 Respuesta aceptada

Mischa Kim
Mischa Kim el 16 de Mzo. de 2014
Editada: Mischa Kim el 16 de Mzo. de 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 comentarios

Nik
Nik el 18 de Mzo. de 2014
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 el 18 de Mzo. de 2014
What are the sizes of X and T? Is T a scalar?
Nik
Nik el 19 de Mzo. de 2014
Editada: Nik el 19 de Mzo. de 2014
Sir Mischa, T is:
M=size(pic,1)^2;
T=sig*sqrt(2*log(M));
while X is the wavelet coefficient value. TQVM.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

Nik
el 16 de Mzo. de 2014

Editada:

Nik
el 19 de Mzo. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by