bonjour a tous
j'ai écris le programme suivant mais je ne trouve pas où est le problème
voila le code
et la fonction fun est définie comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 BW=imread('Mask1.png'); [m,n]=size(BW); [x,y]=meshgrid(1:n,1:m); %x=1:m;y=1:n; c=[5 .05,1,.2,.1,10,.6]; Z1=c(1)*(c(2).*x.^2+c(3).*y.^2+c(4).*x.*y+c(5).*x+c(6).*y+c(7)); I=Z1(:); [m,n]=size(Z1); [X,Y]=meshgrid(1:n,1:m); X=X(:); Y=Y(:); %x=[X Y]; options=optimset('Display','iter','TolFun',1e-4,'TolX',1e-4,'MaxFunEvals',1e10); c0=rand(8,1); S=n*m; cc=fminsearch('fun',c0,[],I,S,X,Y);
désolée je n'ai pas réussi à joindre le masque que j'utilise mais peu importe on peu utilisé n'importe quelle taille pour le teste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function f=fun(k,I,N,X,Y) %X=x(:,1); %Y=x(:,2); %I=I(:); lambda=k(8); f = ( I-k(1).*(k(2).*X.^2+k(3)*Y.^2+k(4)*X.*Y+k(5).*X+k(6)*Y+k(7))).^2-lambda.*((mean(k(2).*X.^2+k(3)*Y.^2+k(4)*X.*Y+k(5).*X+k(6)*Y+k(7))./N)-1);
L'erreur que j'ai est la suivante:
merci pour votre aide??? Subscripted assignment dimension mismatch. Error in ==> fminsearch at 205 fv(:,1) = funfcn(x,varargin{:}); Error in ==> minimumfunc at 36 cc=fminsearch('fun',k,[],I,S,X,Y);
Partager