Bonjour,
J'ai un petit soucis pour appeler une variable provenant d'un GUI afin de l'utiliser dans une fonction. Pourtant je ne pense pas avoir fait d'erreur de syntaxe mais d’après ce que j'ai compris il n'est pas toujours évident d'utiliser les variables des GUI.
Mon problème est le suivant : j'utilise un GUI afin de fixer des paramètres qui seront utilisés dans un programme qui lui même appelle une fonction (Coherence). L'une des entrées de cette fonction provient du GUI et quand j’exécute mon programme principal, a hauteur de la fonction, Matlab me dit que l’entrée provenant du GUI n'existe pas.
Or, quand je place un breakpoint au niveau de la ligne de code du programme principal qui appelle ma fonction Coherence la variable d’entrée est bien présente. Je ne comprends pas du tout d'ou vient le probleme...
Voici la ligne qui appelle ma fonction coherence, dans mon programme principal :
CO est la variable provenant du GUI, c'est un string qui désigne le chemin pour récupérer des fichiers dans un dossier spécifique afin de l'utiliser dans ma fonction Coherence comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part [coherence,F5,S3,Q2,C]=Coherence(CO,N,f2);
quand j'execute le tout, matlab m'annonce :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 function [coherence,F5,S3,Q2,C]=Coherence(CO,N,f2) cd(CO); COFILE=dir; for d=3:length(COFILE); F5{d}=load(COFILE(d,1).name); end % Load all selected files for h=3:length(F5); Q2{h-2}=F5{h}; end % Pick up the fields ---------------------------------- for oo=1:length(Q2); w2=char(fieldnames(Q2{oo})); S3{oo}=getfield(Q2{oo},w2); end C= cellfun(@(x) x.y_values.values,S3,'uni',0); % Pick values from each cells and make a matrix of it C= cat(1,C{:}); coherence=zeros(N-1,f2); for yy=1:f2; for pp=2:N*(N-1)/2; for dd=N+1:size(C,1); coherence(pp-1,yy)=(abs(C(pp,yy))^2/(C(1,yy)*C(dd,yy))); end end coherence(1,yy)=(abs(C(2,yy))^2/(C(1,yy)*C(4,yy))); end return
Impossible pour moi de savoir pourquoi, pouvez vous m'indiquer la source du problème svp ???? Input argument "CO" is undefined. Error in ==> Coherence at 9 cd(CO);
Merci d'avance pour votre aide
Partager