Hi, ich habe folgendes Problem. Ich habe bei Matlab Gui ein Wert aus der Slider -Funktion, welcher in die Pushbutton-Funktion übergeben werden soll. function slider9_Callback(hObject, eventdata, handles) % hObject handle to slider9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider global G9 G9=get(hObject,'Value'); if G9==0 % Worste Case für die Biquadformel, sprich Teilung durch 0. G9=0.1; end set ( handles.edit9, 'String', num2str ( G9 ) ); f9=15100; df9=9720; [b9,a9]=Koeff_berechnung(G9,f9,df9); [H9,w9]=freqz(b9,a9,10000); global H9; global w9; der Wert H9 wird in der Push-button-funktion benötigt. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global H; Hges=H.*H2.*H3.*H4.*H5.*H6.*H7.*H8.*H9; % Gesamtspektrum Hges für den Plot semilogx((w/pi)*(fs/2),20*log10(abs(Hges)),'LineWidth',2.0); axis([10, 25000, -18, 18]); xlabel('Frequenz [Hz]'); ylabel('Amplitude [dB]'); grid; Leider erzählt mir Matlab immer das gleiche: Undefined function or variable 'H9' mit den anderen H's das gleiche Problem. Mit Global H9 funktioniert es nicht. Wer weiss, wie ich diese Variable übergeben kann. (Für die, die jetzt meckern das dieser Beitrag hier nicht rein passt, tut es mir sehr leid. Is aber das einzige Forum wo man gute Antworten bekommt)
Muss man globale Variablen nicht vor der Verwendung deklariert haben? Schau nochmal in die Hilfe dazu. Abgesehen davon sind globale Variablen unschön, da fehleranfällig. Du hast doch die "handles" Struktur und kannst auf den Slider aus dem PB-callback zugreifen. Wenn dir das nicht gefällt, nimm eine "appdata" Struktur.
Die embedded matlab function macht die Variablen, die in einzelnen callbacks vorkommen nicht allgemein bekannt. Das musst du erledigen. Oben in der Deklarierung also in function name_deiner_Gui (hObject,... kannst du mit z.B.: handles.das_zu_bekanntmachende=hObject; %deklarieren handles.das_zu_bekanntmachende=0; % erst mal einen wert festlegen, dass kein Unsinn drinsteht Gruß Fekal
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.