Fonction Matlab
Résolu
ghadatou
-
cameleonna -
cameleonna -
A voir également:
- Fonction Matlab
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
9 réponses
T'as fait une erreur de frappe et ta fonction s'appelle pas exactement snakedeform, je vois que ça.
Ou alors, pendant l'exécution du programme 1, tu changes de répertoire et Matlab arrive pas à trouver snakedeform dans le répertoire courant.
Ou alors, pendant l'exécution du programme 1, tu changes de répertoire et Matlab arrive pas à trouver snakedeform dans le répertoire courant.
T'es dans le répertoire principal de Matlab ?
Si c'est pas le cas ou même si c'est le cas finalement parce que je vois pas d'autre solution, ajoute la ligne addpath('chemin_vers_le_répertoire_de_snakedeform'); dans le fichier de ton programme principal.
Ça marche ?
Si c'est pas le cas ou même si c'est le cas finalement parce que je vois pas d'autre solution, ajoute la ligne addpath('chemin_vers_le_répertoire_de_snakedeform'); dans le fichier de ton programme principal.
Ça marche ?
dans ce cas j'obtiens :
Warning: Name is nonexistent or not a directory: chemin_vers_le_répertoire_de_snakedeform.
> In path at 110
In addpath at 87
In Untitled at 14
je veux bien vous donner mon deuxième programme, juste pour avoir une idée :) et bien sure si vous voulez me le corriger si çà ne vous dérange pas monsieur :)
alors ma fonction est:
function [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
% SNAKEDEFORM Deform snake in the given external force field
% [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
%
% alpha: elasticity parameter
% beta: rigidity parameter
% gamma: viscosity parameter
% kappa: external force weight
% fx,fy: external force field
% Chenyang Xu and Jerry L. Prince, 4/1/95, 6/17/97
% Copyright (c) 1995-97 by Chenyang Xu and Jerry L. Prince
% Image Analysis and Communications Lab, Johns Hopkins University
% generates the parameters for snake
N = length(x);
alpha = alpha* ones(1,N);
beta = beta*ones(1,N);
% produce the five diagnal vectors
alpham1 = [alpha(2:N) alpha(1)];
alphap1 = [alpha(N) alpha(1:N-1)];
betam1 = [beta(2:N) beta(1)];
betap1 = [beta(N) beta(1:N-1)];
a = betam1;
b = -alpha - 2*beta - 2*betam1;
c = alpha + alphap1 +betam1 + 4*beta + betap1;
d = -alphap1 - 2*beta - 2*betap1;
e = betap1;
% generate the parameters matrix
A = diag(a(1:N-2),-2) + diag(a(N-1:N),N-2);
A = A + diag(b(1:N-1),-1) + diag(b(N), N-1);
A = A + diag(c);
A = A + diag(d(1:N-1),1) + diag(d(N),-(N-1));
A = A + diag(e(1:N-2),2) + diag(e(N-1:N),-(N-2));
invAI = inv(A + gamma * diag(ones(1,N)));
for count = 1:ITER,
vfx = interp4(fx,x,y);
vfy = interp4(fy,x,y);
% deform snake
x = invAI * (gamma* x + kappa*vfx);
y = invAI * (gamma* y + kappa*vfy);
end
en faisant la simulation je trouve que j'ai pas mal d'erreurs
pourriez vous m'aidez svp
Warning: Name is nonexistent or not a directory: chemin_vers_le_répertoire_de_snakedeform.
> In path at 110
In addpath at 87
In Untitled at 14
je veux bien vous donner mon deuxième programme, juste pour avoir une idée :) et bien sure si vous voulez me le corriger si çà ne vous dérange pas monsieur :)
alors ma fonction est:
function [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
% SNAKEDEFORM Deform snake in the given external force field
% [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
%
% alpha: elasticity parameter
% beta: rigidity parameter
% gamma: viscosity parameter
% kappa: external force weight
% fx,fy: external force field
% Chenyang Xu and Jerry L. Prince, 4/1/95, 6/17/97
% Copyright (c) 1995-97 by Chenyang Xu and Jerry L. Prince
% Image Analysis and Communications Lab, Johns Hopkins University
% generates the parameters for snake
N = length(x);
alpha = alpha* ones(1,N);
beta = beta*ones(1,N);
% produce the five diagnal vectors
alpham1 = [alpha(2:N) alpha(1)];
alphap1 = [alpha(N) alpha(1:N-1)];
betam1 = [beta(2:N) beta(1)];
betap1 = [beta(N) beta(1:N-1)];
a = betam1;
b = -alpha - 2*beta - 2*betam1;
c = alpha + alphap1 +betam1 + 4*beta + betap1;
d = -alphap1 - 2*beta - 2*betap1;
e = betap1;
% generate the parameters matrix
A = diag(a(1:N-2),-2) + diag(a(N-1:N),N-2);
A = A + diag(b(1:N-1),-1) + diag(b(N), N-1);
A = A + diag(c);
A = A + diag(d(1:N-1),1) + diag(d(N),-(N-1));
A = A + diag(e(1:N-2),2) + diag(e(N-1:N),-(N-2));
invAI = inv(A + gamma * diag(ones(1,N)));
for count = 1:ITER,
vfx = interp4(fx,x,y);
vfy = interp4(fy,x,y);
% deform snake
x = invAI * (gamma* x + kappa*vfx);
y = invAI * (gamma* y + kappa*vfy);
end
en faisant la simulation je trouve que j'ai pas mal d'erreurs
pourriez vous m'aidez svp
Désolé, je vais pas avoir le temps de regarder ton programme snakedeform ce soir.
Sinon, quand je disais de taper addpath('chemin_vers_le_répertoire_de_snakedeform'); au début du fichier Untitled.m, il était bien sûr sous-entendu que tu devais remplacer chemin_vers_le_répertoire_de_snakedeform par le chemin complet vers le répertoire qui contient le fichier snakedeform.m.
Bonne nuit, pour le programme, je jette un œil demain.
Cela dit, en regardant en diagonal, je sais pas s'il est très judicieux de donner le même nom à une variable d'entrée et à une variable de sortie :
function [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
Mais je pense pas que ce soit un drame.
Et sinon, j'espère que les personnes s'opposent pas à ce que leur programme soit diffusé parce que je lis ça :
% Copyright (c) 1995-97 by Chenyang Xu and Jerry L. Prince
Sinon, quand je disais de taper addpath('chemin_vers_le_répertoire_de_snakedeform'); au début du fichier Untitled.m, il était bien sûr sous-entendu que tu devais remplacer chemin_vers_le_répertoire_de_snakedeform par le chemin complet vers le répertoire qui contient le fichier snakedeform.m.
Bonne nuit, pour le programme, je jette un œil demain.
Cela dit, en regardant en diagonal, je sais pas s'il est très judicieux de donner le même nom à une variable d'entrée et à une variable de sortie :
function [x,y] = snakedeform(x,y,alpha,beta,gamma,kappa,fx,fy,ITER)
Mais je pense pas que ce soit un drame.
Et sinon, j'espère que les personnes s'opposent pas à ce que leur programme soit diffusé parce que je lis ça :
% Copyright (c) 1995-97 by Chenyang Xu and Jerry L. Prince
ben écoutez je vous remercie énormément , juste pour préciser: la fonction 'snakedeform' c'est mon encadreur qui me la donné tel qu'elle est c'est pas moi qui la écrite parce que je débute avec matlab donc je peux vous dire que je suis novice :) mais je ne vais pas lâcher l'affaire je dois comprendre ce programme jusqu'à arriver à le faire tourner.
je respecte votre attention monsieur encore merci et bonne nuit
je respecte votre attention monsieur encore merci et bonne nuit
Salut
C'est pourtant bien comme ça.
Tes deux programmes sont bien dans le même répertoire ?
Bonne soirée
C'est pourtant bien comme ça.
Tes deux programmes sont bien dans le même répertoire ?
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Ça se fait exactement comme tu l'as fait, il y a aucune raison pour que ça marche pas.
T'obtiens quoi comme message d'erreur ?
Bonne soirée
Ça se fait exactement comme tu l'as fait, il y a aucune raison pour que ça marche pas.
T'obtiens quoi comme message d'erreur ?
Bonne soirée
Ça aurait pu se faire... :-D
Pfff... je vois vraiment pas où peut être l'erreur, je suis à cours d'idée :-(
Mais pour te convaincre que c'est bien comme ça qu'on appelle une fonction dans une autre, tu peux juste faire un tout petit truc, tu verras que ça marche.
Par exemple, tu définis ça :
Si c'est pas le cas, il y a vraiment un souci :-(
Ton programme principal s'appelle Untitled.m apparemment, il y a d'autres infos qui pourraient m'être utile pour comprendre d'où vient ton souci ?
Pfff... je vois vraiment pas où peut être l'erreur, je suis à cours d'idée :-(
Mais pour te convaincre que c'est bien comme ça qu'on appelle une fonction dans une autre, tu peux juste faire un tout petit truc, tu verras que ça marche.
Par exemple, tu définis ça :
function inutile = unuseful(n) inutile=1; disp('It works');Tu l'enregistres en unuseful.m et tu l'appelles dans ton programme principal avant snakedeform avec valeur = unuseful(10); par exemple. Normalement, ça devrait t'afficher It works.
Si c'est pas le cas, il y a vraiment un souci :-(
Ton programme principal s'appelle Untitled.m apparemment, il y a d'autres infos qui pourraient m'être utile pour comprendre d'où vient ton souci ?
Désolé mais là, à part le fait que t'es pas dans le bon répertoire ou le fait que ta fonction s'appelle pas comme ça, je pense qu'il y a pas d'autre choix.
Change pas de répertoire et tape ls dans la fenêtre de commandes Matlab.
Il y a snakedeform.m dans la liste ?
Change pas de répertoire et tape ls dans la fenêtre de commandes Matlab.
Il y a snakedeform.m dans la liste ?
Salut ghadatou
Tu peux tutoyer tout le monde ici, t'es pas en milieu universitaire ;-)
Et même si c'était le cas, je demanderais pas de me vouvoyer.
Pour ton programme, j'ai donc jeté un œil.
* C'est pas très important mais alpham1 est pas utilisé dans le programme. Mais du coup c'est peut-être un petite erreur dans la suite du programme, il y a peut-être un endroit où une autre variable est utilisée à sa place. Ça empêchera pas le programme de tourner mais ça donnera des résultats faux si effectivement il y a une erreur.
* La fonction interp4 existe pas donc si t'as pas écrite cette fonction quelque part, il s'agit d'une erreur.
Bonne journée
Tu peux tutoyer tout le monde ici, t'es pas en milieu universitaire ;-)
Et même si c'était le cas, je demanderais pas de me vouvoyer.
Pour ton programme, j'ai donc jeté un œil.
* C'est pas très important mais alpham1 est pas utilisé dans le programme. Mais du coup c'est peut-être un petite erreur dans la suite du programme, il y a peut-être un endroit où une autre variable est utilisée à sa place. Ça empêchera pas le programme de tourner mais ça donnera des résultats faux si effectivement il y a une erreur.
* La fonction interp4 existe pas donc si t'as pas écrite cette fonction quelque part, il s'agit d'une erreur.
Bonne journée
je viens de vérifier si vraiment j'ai commis une faute de frappe mais c'est pas le cas;
pour cela laissez moi vous résumer la situation : j'ai deux programmes devant moi les deux de même extension .m lorsque je fais l'appel à la fonction function écrite dans le deuxième programme j'obtiens le message d'erreur indiqué ci- dessus et c'est ce qui me rend dingue! il me semble que tout est bien or j'ai toujours un pb