J'ai un problème avec cette fonction

je l'utilise dans une boucle les 11 premier fois elle ne pose aucun problème et au 12 ème passage il me sort cette erreur que je ne comprend pas :

??? Improper assignment with rectangular empty matrix.

Error in ==> C:\MATLAB6p5\toolbox\matlab\elmat\sub2ind.m
On line 25 ==> mn(i) = min(varargin{i}(: ));

Error in ==> C:\MATLAB6p5\toolbox\images\images\bwselect.m
On line 58 ==> seed_indices = sub2ind(size(BW), r(: ), c(: ));

Error in ==> C:\Documents and Settings\...\MainP.M
On line 201 ==> Imbin_Light_Point1 = bwselect(Imbin_Light_Point,VecImbin_Light_Point_X(index_dist),VecImbin_Light_Point_Y(index_dist));
Je cherche a trouvé la distance entre 1 point et le centre d'une tache

Voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[VecImbin_Light_Point_X  VecImbin_Light_Point_Y] = find(Imbin_Light_Point);
n=size(VecImbin_Light_Point_X );
Distance_Vec=zeros(n,1);
 
for i=1:n
    Diff_X=VecImbin_Light_Point_X(i)-ci(1);
    Diff_Y=VecImbin_Light_Point_Y(i)-ci(2);
    Distance_Vec(i)=sqrt(Diff_X  * Diff_X+ Diff_Y  * Diff_Y);
end
[Distance_centre_Point index_dist]= min(Distance_Vec);
Imbin_Light_Point1 = bwselect(Imbin_Light_Point,VecImbin_Light_Point_X(index_dist),VecImbin_Light_Point_Y(index_dist));
[VecImbin_Light_Point_X1  VecImbin_Light_Point_Y1] = find(Imbin_Light_Point1);
spot_center_x = mean(VecImbin_Light_Point_X1);
spot_center_y = mean(VecImbin_Light_Point_Y1);
ci : coordonné du point
VecImbin_Light_Point_.. : coordonné de la tache
quelqu'un a t il une idée ?

Merci d'avance .