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

Mehrere Variablen aus Textfeld für eine Berechnung verwende

 

Patrick123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 14:54     Titel: Mehrere Variablen aus Textfeld für eine Berechnung verwende
  Antworten mit Zitat      
Hallo,
ich möchte in einem GUI in ein "edit text" frei wählbare Variablen in der Form z.B.: [1 2](also nicht nur eine Variable) eingeben mit denen dann auf Knopfdruck die Polstellen, Nullstellen und Residuen ausgerechnet werden sollen. Eine Beispielfunktion wäre
H1(z ) = (1+ 2z ^−1)/(1− 0.1z^ −1 − 0.2z^ −2). Danach wird das Ergebnis in einem "static text" ausgegeben. Das Problem ist nun das ich es nicht hinkriege mehrere Variablen auf einmal einzulesen welche dann für den Nenner oder Zähler benutzt werden. Mein Code sieht bis jetzt wie folgt aus

Code:
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
assignin('base','b',str2num(get(handles.edit1, 'String')));
assignin('base','a',str2num(get(handles.edit2, 'String')));

popup_sel_index = get(handles.popupmenu2, 'Value');
switch popup_sel_index
    case 1
[z,p]=tf2zp(b,a);
[R,P,K]=residuez(b,a);
set(handles.text1,'String', num2str(z))
set(handles.text2, 'String' , num2str(p))
end


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2012, 15:07     Titel:
  Antworten mit Zitat      
Hallo,

und wo genau ist nun das Problem?

Wenn du die Variablen im Base Workspace anlegst (assignin-Zeilen) und aber lokal verwenden willst (tf2pz-Befehl), dann kann das nicht gut gehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 15:46     Titel:
  Antworten mit Zitat      
Danke für die Antwort, hab ich auch noch nicht gewusst, hab noch nicht so viel Ahnung von Matlab aber das Problem ist hauptsächlich das ich in dem "edit text" im GUI z.B. 1 2 eingeben möchte und er das so übernimmt als würde ich im workspace b= [1 2] eingeben und ich damit die Rechnungen durchführen kann. Sorry falls das zu wenig Informationen waren.

MfG Patrick
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2012, 15:56     Titel:
  Antworten mit Zitat      
Hallo,

dann spalte das doch nachträglich von Hand auf?
Code:
c = b(1);
d = b(2);


Ich würde davon abgesehen lieber zwei getrennte Edit-Felder dafür nehmen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 16:12     Titel:
  Antworten mit Zitat      
An mehrere Edit-Felder hab ich auch schon gedacht nur das ganze soll interaktiv sein also wenn ich jetzt z.B. im Zähler nicht nur 2 Zahlen sondern 3 oder mehr eingeben will. Würde es was ausmachen oder zu Fehlern führen wenn ich jetzt z.B. 3 Edit-Felder hab und geb aber nur in 2 was ein? Gibt es noch eine andere Methode im GUI Variablen einzugeben welche dann zur Rechnung benutzt werden können?

MfG Patrick
 
Harald
Forum-Meister

Forum-Meister


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

was stört dich denn an der ersten Variante?

Zudem: wenn die Anzahl der Eingaben variabel sein soll, ist ein Vektor doch ideal?

Ob es ohne Eingabe zu einem Fehler kommt, hängt davon ab, was du programmierst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 17:21     Titel:
  Antworten mit Zitat      
Ok wenn ich den code wie am Anfang nehme müsste ich die variablen mit eval() dann weider lokal benutzen können oder sollte ich gar nicht mit assignin arbeiten?

MfG Patrick
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2012, 18:05     Titel:
  Antworten mit Zitat      
Hallo,

ich würde assignin etc. vermeiden, wo es nur geht. Hier sehe ich keinen Grund dafür.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 18:08     Titel:
  Antworten mit Zitat      
Alles klar, danke für deine Mühe.

MfG Patrick
 
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.