WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Text anzeigen

 

Mitte
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2016, 16:45     Titel: Text anzeigen
  Antworten mit Zitat      
Hallo,
kann mir da bitte jemand weiterhelfen.

Ich öffne hier über meine erste GUI eine weitere GUI
in der ich direkt beim öffnen meine Berechnung durchführe
und diese auch gleich plotte.

Bis hier hin funktioniert mein Code.

Nun will ich aber meine berechneten Werte
direkt einem static Textfeld übergeben
und beim öffnen anzeigen lassen.
Das funktioniert leider nicht!!

Hier mein Code:

Code:
function GUI_M1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to GUI_M1 (see VARARGIN)

% Choose default command line output for GUI_M1
handles.output = hObject;

% Update handles structure
handles=getappdata(0,'GUI');
guidata(hObject, handles);


f2 =(handles.fmethode(1):handles.df/10:handles.fmethode(11));

H2 = interp1(handles.fmethode,handles.Hmethode1,f2,'spline');

[maxH1,e]=max(H2);
    fmax1=f2(e);
   
    Ha1 = maxH1/sqrt(2);
   
    b1 = H2(1:e);
    bf1= f2(1:e);
    b2 = H2(e:end);
    bf2 = f2(e:end);
   
    fb1=interp1(b1,bf1,Ha1);
    fa1=interp1(b2,bf2,Ha1);
   
    omegaa=2*pi*fa1;
    omegab=2*pi*fb1;
    omegar=2*pi*fmax1;

    ETAR1 = ((omegaa^2-omegab^2)/(2*omegar^2))*100;
    zetar1 = ETAR1/2;
    Ar1 = maxH1*omegar^2*ETAR1;

    %% Plot
    cla
 
    semilogy(handles.fmethode,handles.Hmethode1,'b');
    hold on;
    semilogy(handles.fmethode,handles.Hmethode1,'.','color','r');
    xlabel('Frequency [Hz]')
    ylabel('|H(f)|')
    hold on;
    semilogy(f2,H2,'color','g')
    grid on;
    hold on;
    semilogy(fmax1,maxH1,'*','Color','k')
    hold on;
    semilogy(fa1,Ha1,'*','color','k')
    hold on;
    semilogy(fb1,Ha1,'*','color','k')
    hold on;
    legend('funktion','selected Data-Points','Interpolated Line','Special Points',...
    'Location','northeast');
handles.fmax1=fmax1;
handles.maxH1=maxH1;
handles.ETAR1=ETAR1;


guidata(hObject, handles);
setappdata(0,'GUI_M1',handles);

% set(handles.text36,'String',num2str(fmax1))


wenn ich nun die letzte Zeile ausführen lasse bekomme ich immer den fehler:

Code:
Reference to non-existent field 'text36'.

Error in GUI_M1_GUI_M1_OpeningFcn (line 116)
set(handles.text36,'String',num2str(fmax1))

Error in gui_mainfcn (line 220)
    feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

Error in GUI_M1 (line 42)
    gui_mainfcn(gui_State, varargin{:});


Weis jemand wie das geht oder wo mein Fehler ist??
Oder ob es auch anderst geht??

Werte sind bekannt und msgbox funktioniert.

vielen Dank im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.05.2016, 17:55     Titel: Re: Text anzeigen
  Antworten mit Zitat      
Hallo Mitte,

Die Fehlermeldung bedeutet, dss es kein Feld "text36" im Handles-Struct gibt. Wieso nimmst Du an, es würde existieren?

Diese Zeilen sehen seltsam aus:
Code:
handles=getappdata(0,'GUI');
guidata(hObject, handles);

Es ist nicht ratsam, den handles-Struct im Root-Objekt zu speichern. Das hat die gleichen Nachteile wie eine globale Variable: Es ist sehr schwer nachvollziehen zu können, wo wann welche Werte geändert werden.
Die Standard-Methode den handles Struct nur im Figure-Objekt zu speichern, ist deutlich sicherer.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Mitte
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2016, 18:10     Titel:
  Antworten mit Zitat      
Hallo Jan S

Könntest du mit bitte die Standard-Methode zeigen??
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.05.2016, 16:13     Titel:
  Antworten mit Zitat      
Hallo,

Code:
setappdata(hObject,'GUI_M1',handles);

und entsprechend auch getappdata.

Statt hObject kann man auch das Handle der GUI selbst, standardmäßig handles.figure1, verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.