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

Aus einer Matrix nur Wörter auslesen

 

mischka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2014, 16:49     Titel: Aus einer Matrix nur Wörter auslesen
  Antworten mit Zitat      
Hallo,

ich versuche vergeblich aus einer (1000,1) cell-Matrix nur Wörter auszulesen. Es sind Wörter nur bis zur Zeile 100 vorhanden. Die Aufgabe besteht darin, alle Wörter diese Wörter auzulesen, bzw. zu erkennen, in welcher Zeile das letzte Wort sich befindet.

Leider weiss ich wirklich nicht, wie ich in diesem Fall vorgehen kann.

Kann mir jemand helfen?


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2014, 16:50     Titel: Re: Aus einer Matrix nur Wörter auslesen
  Antworten mit Zitat      
mischka hat Folgendes geschrieben:
Hallo,

ich versuche vergeblich aus einer (1000,1) cell-Matrix nur Wörter auszulesen. Es sind Wörter nur bis zur Zeile 100 vorhanden. Die Aufgabe besteht darin, alle Wörter auzulesen, bzw. zu erkennen, in welcher Zeile das letzte Wort sich befindet.

Leider weiss ich wirklich nicht, wie ich in diesem Fall vorgehen kann.

Kann mir jemand helfen?
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 27.10.2014, 19:17     Titel:
  Antworten mit Zitat      
Hallo,

Mit
Code:
ist das machbar.

http://www.mathworks.de/help/matlab/ref/ischar.html#f72-1054293

Grüße
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 09:22     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antwort. Als Beispiel nehme ich eine cell-Matrix, die so ausschaut (jeder backspace ist eine Zelle):
Code:

test=[alex peter julia ° ° * # 1 2 3 4 5 6 7 8 9]

wenn ich hier anwende:
ausgabe=ischar(test);

erhalte ich:
ausgabe=0
 


keine logischen trues. Ich würde aber gerne nur die Namen, bis zum ersten Sonderzeichen abzählen, um mir diese Anzahl auszugeben.

Vielen Dank.
 
Alex4456
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 17.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 09:37     Titel:
  Antworten mit Zitat      
Hallo,

Code:
onlyStrings = cellfun(@ischar,test)
testStrings = test(onlyStrings)


sollte dir helfen. Zur Not kann man immer eine Schleife machen. Du kannst ischar so nicht auf ein CellArray anwenden.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 09:44     Titel:
  Antworten mit Zitat      
Vielen Dank.

Sowohl mit ischar, als auch mit cellfun, erhalte ich nach einer Schleife:

ausgabe=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

und erwartet hätte ich:

ausgabe=1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

egal welchen der beiden Codes ich anwende:
[code]
for i = 1:16
ausgabe(i) = ischar(test{i,1});
end

oder

ausgabe=cellfun(@ischar,test);
[code/]
 
Alex4456
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 17.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 10:01     Titel:
  Antworten mit Zitat      
Dann stellt sich die frage wie du deine Zahlen speicherst?

etwa so test{1,1} = '1' ? Dann handelt es sich dabei nämlich nicht um eine Zahl sondern einen String.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 10:07     Titel:
  Antworten mit Zitat      
ich lese eine gesamte Excel Datei ein mit Hilfe:

Code:

test=textscan(fid,'%s','delimiter','\t');
mit %s für Wort und Zahl


das ganze wird dann in ein cell gespeichert {}test
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 10:10     Titel:
  Antworten mit Zitat      
wenn ich dabei auf die einzelnen Zellen im test gehen, stehen sowohl bei alex, bei ° als auch bei 1 im Variableneditor char. Deswegen erkennt er alles als char und gibt mir das ganze als true.

Was mache ich falsch?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.10.2014, 12:33     Titel:
  Antworten mit Zitat      
Hallo,

%s liest den Inhalt als String ein, egal was der Inhalt ist.
Man kann versuchen, mit str2double zu konvertieren. Wenn es keine Zahl ist, kommt NaN heraus.
Code:


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 14:23     Titel:
  Antworten mit Zitat      
Vielen Dank Harald.

Wenn ich die Matrix konvertiere, erhalte ich für die Sonderzeichen auch ein NaN. Ich brauche aber nur die Namen.
 
Harald
Forum-Meister

Forum-Meister


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

dann z.B. mit cellfun/numel die Anzahl der Zeichen prüfen, oder mit double eine Konvertierung in ASCII Code vornehmen und den zulässigen Bereich testen.

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.