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

String in Cell Array finden und gesamte Zeile zurückgeben

 

oppemaniac
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 03.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2009, 20:01     Titel: String in Cell Array finden und gesamte Zeile zurückgeben
  Antworten mit Zitat      
Hallo,

ich habe nun folgendes Problem:

die Datenbank gibt mir eine sehr großen Cell-Array (2193 x 2) zurück. Ich will nun in der erste Reihe des Arrays nach einem String suchen und wenn dieser gefunden ist (beispielsweise in Zeile 365) soll mir die Funktion die entsprechende Zeile aus der 2. Reihe des Cell-Array´s (365 , 2) zurückgeben.

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)

%Alle Strings der ausgewählten Elemente der Listbox 3 auslesen
chosenFirms = get(handles.listbox3, 'String');

%Verbindung zur Datenbank herstellen
connection = database('SQL Server','','');

%Holt alle Daten
db_results = fetch(connection, 'SELECT ALL F1,F6 FROM "Firmen$"');

%Indexvariable zum Auslesen aller ausgewählten Firmen
k = length(chosenFirms);

for d=1:k
    for m=1:length(db_results(:,1))
        if (strfind(cellstr(db_results(m,1)), char(chosenFirms(k)))==isinteger)
            data_firm(d)= db_results(m,2);
        end
    end
end
 


Folgendes hatte ich mir dabei gedacht:
die strfind() gibt mir ja in der entsprechenden Zeile zurück ab wann der entsprechende String gefunden wurde, und deswegen der vergleich isinteger und wenn das TRUE ist soll die entsprechende Zeile der 2. Reihe von db_results(m , 2) zurückgegeben werden.

Wäre klasse wenn einer eine Idee hätte

mfg
oppemaniac
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 18.09.2009, 13:26     Titel:
  Antworten mit Zitat      
müsste passen:

Code:
>> data = {'aa' 'a1' ; 'bb' 'b1' ; 'cc' 'c1' ; 'dd' 'd1'}

data =

    'aa'    'a1'
    'bb'    'b1'
    'cc'    'c1'
    'dd'    'd1'

>> search_str = 'cc';
>> data(strcmp(data(:,1),search_str),2)

ans =

    'c1'

>>
Private Nachricht senden Benutzer-Profile anzeigen
 
oppemaniac
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 03.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2009, 20:43     Titel:
  Antworten mit Zitat      
Hallo,

genauso hatte ich es in der Zwischenzeit rausgefunden, jedoch offenbart sich nun ein anderes Problem...

in der datensammlung die mit strcmp() durchsucht wird, stehen auch ä´s, ö´s, ü´s, der franz. Akzent (weiss jetzt nicht wie man diesen schreibt... ) da, und der searchstring muss vorher mit der fkt. char() umgewandelt werden und ich glaube, das da die Umlaute nicht umgewandelt werden. Gibts da doch irgendwie eine andere Möglichkeit? Wenn der Searchstring keinen Umlaut und Akzent´s enthält funktioniert strcmp() sehr gut.

mfg
oppemaniac
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 - 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.