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

Datenformat

 

T_Meister
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 16.03.2012, 12:12     Titel: Datenformat
  Antworten mit Zitat      
Hallo,

ich habe gerade ein POPUp erstellt, welche Daten übergeben soll,

Code:
str_manoever=get(handles.Manoever,'String');
ausgabe_manoever=str_manoever{get(handles.Manoever,'value')};

set(handles.ManStruct(1).ManNameString,'String',ausgabe_manoever);


 


In ManNameString soll der Name des gewählten POPInhalts gespeichert werden. Jetzt habe ich aber an anderer Stelle das Problem, dass ich auf die Daten von ManStruct(1).ManNameString zurückgreifen möchte und dieser über
ManABSName =
Code:
regexpi(handles.ManStruct(1).ManNameString,'abs[\d]','match');

untersucht werden soll. Es kommt leider der Fehler

??? Undefined function or method 'regexpi' for input arguments of type 'double'.

Das heißt scheinbar, dass es irgendein Problem mit dem Datenformat gibt. Habt ihr einen Tipp, bzw seht ihr das Problem?

Gruß
Thorsten
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: 16.03.2012, 12:43     Titel: Re: Datenformat
  Antworten mit Zitat      
Hallo T_Meister,

In:
Code:
set(handles.ManStruct(1).ManNameString,'String',ausgabe_manoever);

setzt Du den String, der zum Handle handles.ManStruct(1).ManNameString gehört. Auf die gleiche Weise kannst Du ihn auch wieder auslesen:
Code:
Str = get(handles.ManStruct(1).ManNameString,'String');

Diesen String kannst Du dann per regexp behandeln, während die mit dem Handle des Objekts nicht funktioniert.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 16.03.2012, 13:16     Titel:
  Antworten mit Zitat      
Soweit verstehen ich das, Danke. Für mein weiteres Verständnis habe ich aber noch Fragen. Ich erstelle einen Struct:

Code:
[Data_KP, handles]= GUIdefineStructData_KP(handles, 2);            
handles.ManStruct(1,2) = Data_KP;
 


alle Daten sollen über handles.ManStruct(1).X (z.B. X=ManNameString) in die Data Matrix (<- kann man das so nennen?) schreiben.

Code:
function [ Data_KP, handles ] = GUIdefineStructData_KP( handles, datatype )

Data_KP = struct(...
'Name',[],...
'ManNameString',[], ...

datatype ==2


So soll mit dem schon geschrieben Code der String aus dem POPup übergeben werden. Aufgerufen wird dieser in einer anderen Funktion. Wenn ich jetzt die Variable Str definieren würde, wäre diese ja nur im Callback direkt verfügbar. Die weitere Bearbeitung erfolgt wo anders (bisher).

Code:
function [handles] = Uebergabe_Man_CM ( handles )

ManNr = str2double(handles.ManStruct(1).ManNr);
ManABSName = regexpi(handles.ManStruct(1).ManNameString,'abs[\d]','match');


Muss ich dann Str darin einfügen, also quasi:

Code:
ManNr = str2double(handles.ManStruct(1).ManNr);
Str = get(handles.ManStruct(1).ManNameString,'String');
regexpi(Str,'abs[\d]','match');
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 19.03.2012, 10:12     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das nun so eingebe:

Code:
ManNameString = get(handles.ManStruct(1).ManNameString,'String');
ManABSName = regexp(ManNameString,'abs[\d]','match');


kommt ebenfalls der Fehler:

??? Undefined function or method 'regexp' for input arguments of type 'double'.

Ich habe keine Ahnung warum der jetzt immer noch auftaucht. Kennt jemand den Grund?

Danke und Grüße
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 19.03.2012, 15:21     Titel:
  Antworten mit Zitat      
Hat sich erledigt,

wenn ich statt des set-Befehls schreibe:

Code:
handles.ManStruct(1).ManNameString=ausgabe_manoever


dann funktioniert es wunderbar. Es wird korrekt in den Struct geschrieben und so brauche ich das weitere auch nicht umschreiben Smile
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.