output argument not assigned

Dear community,I have been continually hitting the following error in my code:
--
Output argument "var_ap" (and maybe others) not assigned during call to
"mf_field".
"Error in mf_srex (line 144)
[~, var_srex] = mf_field(var, mask);"
Below is the part of the code to which it is referring:
if length(size(var)) == 2
% get field mean
var_ap = nanmean(nanmean(var .* area )) ./ nanmean(nanmean(area ));
var_mp = nanmean(nanmean(var(mask) .* area(mask))) ./ nanmean(nanmean(area(mask)));
elseif length(size(var)) == 3
% get field mean for masked pixel
var_ap = NaN(size(var,3),1);
var_mp = NaN(size(var,3),1);
for j = 1:size(var,3)
vari = var(:,:,j);
var_ap(j,1) = nanmean(nanmean(vari .* area )) ./ nansum(nanmean(area ));
var_mp(j,1) = nanmean(nanmean(vari(mask) .* area(mask))) ./ nansum(nanmean(area(mask)));
end
end
Please can somebody offer some advice?
Thanks for your time.

 Respuesta aceptada

Image Analyst
Image Analyst el 23 de Oct. de 2018

1 voto

For some reason, you're never assigning anything to var_srex. To fix, just assign it to anything, such as 0 or null, as the very first line of mf_field :
var_srex = [];
Of course you may then get some error where var_srex is null and you expected something else, but you won't also get the error that var_srex is not assigned.

Más respuestas (1)

James Tursa
James Tursa el 22 de Oct. de 2018

0 votos

Based on what you have posted, it appears var has more than 3 dimensions, so you aren't getting into your code above.

1 comentario

aine gormley
aine gormley el 22 de Oct. de 2018
Hi, thanks for your response. I just realised an error in the code I put above. All the ‘nanmean’ cases should be ‘nansum’. Does that make any difference?

Iniciar sesión para comentar.

Categorías

Productos

Versión

R2018b

Preguntada:

el 22 de Oct. de 2018

Comentada:

el 23 de Oct. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by