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

Verwendung von varargin in Funktionen

 

guinewbie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.10.2007, 15:02     Titel: Verwendung von varargin in Funktionen
  Antworten mit Zitat      
Hallo!
Ich habe jetzt einige Tage versucht, eine Matrix aus dem Workspace in einer GUI darstellen zu lassen und da ich heute dieses Forum gefunden habe, ist es mir denn auch dank evalin gelungen. Vielen Dank an Babba!
Nun würde ich aber meiner GUI gerne noch die Information mitgeben, welche Variable sie eigentlich darstellen soll. Dachte mir, probierste mal mit varargin...
Das Problem dabei ist, dass ich zwar in 'function imagegui_OpeningFcn(hObject, eventdata, handles, varargin)' auf varargin zugreifen kann, aber in späteren Funktionen nicht mehr. Ich übergebe varargin meiner Funktion zwar ebenfalls im Funktionskopf, aber ich bekomme bei Zugriff die Fehlermeldung '??? Index exceeds matrix dimensions.'.
Ich könnte zwar mit den bereits gelernten Tricks eine Variable aus dem Workspace laden, in der die entsprechende Information steht, aber das scheint mir recht unästhetisch.
Hat vielleicht jemand eine Lösung dafür?
Vielen Dank schon mal fürs lesen!
Jan


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 04.10.2007, 20:33     Titel:
  Antworten mit Zitat      
Aufruf der GUI
Code:
untitled(100,'HELLO WORLD')


Code:
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
handles.myData1 = varargin{1};
handles.myData2 = varargin{2};

% Update handles structure
guidata(hObject, handles);


Nun wird der Wert 100 unter handles.myData1 gespeichert und der String 'Hello World' unter handles.myData2 und stehen nun in allen Callbacks Deiner GUI zur Verfügung.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
guinewbie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2007, 22:03     Titel:
  Antworten mit Zitat      
Hat alles geklappt!
Vielen Dank!
 
Jensen87
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 16.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2011, 13:19     Titel:
  Antworten mit Zitat      
Hallo Zusammen,

um nicht wieder einen neuen Thread öffnen zu müssen, stelle ich meine Frage anhand des obigen Beispiels:

In der Opening Fcn hab ich das selbe angegeben wie outsider. Ich habe also 2 Variablen, die ich mir vom Command Window in die GUI holen kann.
Problem ist nun, dass ich beim Aufruf der funktion nun immer
Code:

untitled(variable_a, variable_b)  


angeben muss.
Sobald ich nur
Code:
eingebe, kommt der error:
???Index exceeds matrix dimensions

Wie erreiche ich, dass es egal ist, ob ich nur untitled, oder untitled(a, b) eingebe?

Danke und schöne Grüße
Jens
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2011, 13:39     Titel:
  Antworten mit Zitat      
Hi,

das funktioniert nicht, weil du die Zuweisung unabhängig davon machst, wieviele Parameter übergeben werden. Wenn dann ein Argument fehlt und er es trotzdem zuweisen will, kommt ein Fehler.
Mit nargin kannst du überprüfen wieviele Parameter übergeben wurden und die Zuweisungen dann entsprechend der Anzahl der Argumente machen.

Ein neuer Thread wäre sicher auch besser gewesen, als in einen 4 Jahre alten zu posten.
 
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 - 2024 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.