2017-11-17 61 views
0

的价值我有这样一个循环:要改变一个空的变量

[centers, radii]=imfindcircles() %find circles in the image 
if isnan(centers)==1 %if centres is empty 
    centers='NA'; % assign centres a NA 
else 
    centers=centers; 
end 

我想要做的是:

  • 时没有发现圆和centers=[],我要分配中心一个值(可能是'NA'0)。
  • 如果找到一些圆圈,则centres保持相同的数组。

该循环的目标是将centres的某个值赋值,以便即使没有找到圆,我也可以将其保存到.xls文件中。

但我的问题是在这个循环后,即使centers=[],centres不会改变它的值。这意味着这个循环根本不起作用。那么有人可以检查我哪里错了吗?

回答

-1
[centers,radii] = imfindcircles() %find circles in the image 

if (isempty(centers)) %if centres is empty 
    centers(1) = NaN; % assign centres a NA 
end 

更好的理论方法是,恕我直言:

if (isempty(centers)) 
    % write a dummy XLS file 
else 
    % write your values to XLS file 
end 
+3

你编辑你的答案,并完全使它与其他答案相同。从声誉的变化来看,显然你只是因为有人低估了你的意见而低估了其他答案。 –

+0

是的,因为完成单线操作的方法完全正确。 –

1

你可以这样做:

function [ x ] = empty2nan(x, Size) 
    if isempty(x), x=nan(1,Size); end 
end 

而且

centers=empty2nan(centers,2)