Je veux charger un fichier objet réseau neuronal avec un bouton-poussoir et l'utiliser dans la fonction de rappel d'un autre bouton-poussoir.Comment puis-je atteindre une variable chargée dans une autre fonction de rappel dans MATLAB?
Je n'utilise pas GUIDE, je crée l'interface graphique par programme. Voici mon code:
function ASR()
figure('Name','Automatic Isolated Speech Rcognition System',.......
'Menubar','none',........
'Color',[1 1 1]);
Rcrd_and_Recog =uicontrol('Style','pushbutton',....
'Units','normalized',....
'Position',[0.75 0.75 0.20 0.05],....
'String','START',....
'Callback',@Record_Recog);
LD_net = uicontrol('Style','pushbutton',....
'Units','normalized',....
'Position',[0.75 0.65 0.20 0.05],....
'String','LOAD THE NET',....
'Callback',@load_net);
function load_net(varargin)
[file path]=uigetfile('*.mat','Select the M-file');
if ~isequal(file, 0)
L=load(fullfile(path,file));
Net=fieldnames(L);
net=Net{1};
handles.net=net;
end
function Record_Recog(varargin)
fs=16000;
y=wavrecord(1*fs,fs,1,'double');
if length(y)<1157
result=sim(net0,cat(1,y,zeros(1157-length(y),1)))
else
result=sim(net0,y)
end
end
I chargé de la variable net
mais je ne peux pas l'atteindre à partir Rcrd_and_Recog
. Comment puis-je l'atteindre?
PLZ; Quelqu'un m'aider je suis coincé ici pendant 2 jours. – user1646349
Bonjour tout le monde pouvez-vous décrire le processus que vous avez mentionné? ou spécifiquement me dire où je dois éditer dans mon code. – user1646349
Désolé pour la réponse tardive. Si c'est toujours pertinent, je vois que vous voulez charger la variable et l'enregistrer quelque part, puis l'utiliser dans un autre endroit. Une option est ce que vous avez essayé de faire est de l'enregistrer dans un autre objet, mais vous avez besoin d'une étiquette ou d'une boîte de texte, mais pas seulement handles.net = net; ou vous pouvez le déclarer comme variable globale en écrivant au début de la fonction load_net les mots "net global" cela signifie que vous pouvez maintenant utiliser cette variable dans d'autres fonctions. Ensuite, dans la fonction "Record_Recog", vous écrivez "global net", puis utilisez-le et non le net0 qui n'est utilisé nulle part ailleurs. – BioSP