How can I fix error in fzero (line 241)

1 visualización (últimos 30 días)
Szabó-Takács Beáta
Szabó-Takács Beáta el 3 de Sept. de 2015
Comentada: Torsten el 4 de Sept. de 2015
When I use the following fzero function in Matlab R2012a:
for jj=1:358;
mat=cv_o2{jj};
pr=CC_m{jj};
x = [-5 100];
fun = @(x)mat-(std(power(pr,x),1,3)./mean(power(pr,x),3))
b=fzero(fun,x);
BB{jj}=b;
end
end
I get the following error message:
Operands to the || and && operators must be convertible to logical scalar values.
Error in fzero (line 241)
if any(~isfinite([fa fb])) || any(~isreal([fa fb]))
I do not understand what the matter is. Could someone write me how can I fix this error?

Respuestas (1)

Titus Edelhofer
Titus Edelhofer el 3 de Sept. de 2015
Hi,
fzero works for scalar valued functions. Looking at your function I guess it's not scalar valued (i.e., if you call your function fun for one value, the value should not be a vector/matrix but a scalar ("number").
Titus
  7 comentarios
Titus Edelhofer
Titus Edelhofer el 3 de Sept. de 2015
Hi,
but if pr is a 3D matrix, should't it then be pr(i,j,:)?
Titus
Torsten
Torsten el 4 de Sept. de 2015
pr(i,j) is a scalar. Thus taking nanstd(pr(i,j)^x) gives Inf since you divide by 0.
Best wishes
Torsten.

Iniciar sesión para comentar.

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by