Fonction Matlab
Résolu/Fermé
A voir également:
- Fonction Matlab
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
9 réponses
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 23:07
24 nov. 2008 à 23:07
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.
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
25 nov. 2008 à 00:03
25 nov. 2008 à 00:03
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
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
25 nov. 2008 à 00:31
25 nov. 2008 à 00:31
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
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 18:24
24 nov. 2008 à 18:24
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
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 22:53
24 nov. 2008 à 22:53
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
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 23:23
24 nov. 2008 à 23:23
Ça devrait marcher alors.
Est-ce que le fichier de la fonction snakedeform se nomme snakedeform.m ?
Est-ce que le fichier de la fonction snakedeform se nomme snakedeform.m ?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 23:34
24 nov. 2008 à 23:34
Ç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 ?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
24 nov. 2008 à 23:51
24 nov. 2008 à 23:51
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 ?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
26 nov. 2008 à 10:47
26 nov. 2008 à 10:47
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
24 nov. 2008 à 23:19
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