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

char in double finden

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2010, 13:43     Titel: char in double finden
  Antworten mit Zitat      
Hallo zusammen,


kennt jemand den Befehl, um in einem Spaltenvektor mit tausenden Werten auf ein char zu überprüfen? Wenn z.B. einVektor mit

56
58
67
89
46
43
Fehlmessung


als txt vorliegt, soll er hier z.B. bei Fehlmessung eine Meldung abgeben bzw. die Zeilennummer ausgeben.

mit [/code]
if ischar(Messreihe)
set(handles.ausgabe,'String','Messreihe enthält Fehlmessung)
return
else
end

[code]

fkt es jedenfalls nicht.

Grüße


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.04.2010, 16:29     Titel:
  Antworten mit Zitat      
Hallo,
wenn deine Messreihe als Txt-File vorliegt, dann wenn du einliest ist alles Char/String.
Wie liest du dein File ein, bitte etwas mehr Code posten. Konvertierst du es?

Eventuell hilft dir isstrprop weiter!
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 08:44     Titel:
  Antworten mit Zitat      
Hallo denny,

nein also konvertieren wollte ich es nicht. Es fkt. auch nicht wenn ich es als String wie z.B.: so einlesen:
Code:

Messreihe = textread(Datei,'%s');
 


denn ich muss schlussendlich Zahlenwerte in Form eines z.B. 5000x1 double
erhalten, die werden dann weiter verarbeitet.

Das von dir vorgeschlagene isstrprop vergleicht bei Einlesen der Datei als String jedes Element darauf ob es einen Buchytaben enthält oder nicht. Ist ja ok, aber dafür muss ich Datei als String einlesen. Ich bekommen sie dann nicht verglichen und anschließend muss sie ja wieder zu double zurückkonvertiert werden, das habe ich mit:

Code:

cell2num
cell2float
 


versucht aber es kam die Fehlermeldung:
Code:

??? Undefined function or method 'cell2float' for input
arguments of type 'cell'.
 


Ich arbeite mit der Version 2009b

Aber es sollte doch einen Befhel geben, der ein Z.B. 5000+1 double auf char überprüft und beim ersten char dann stoppt und eine Fehlermeldung ausgibt.

Denn als:
Code:

Messreihe = textread(Datei,'%f');
 


wird beim ersten char eine Fehlermeldung ausgegeben, dass möchte ich ja auch erzielen nur nicht mit einem Abbruch der Funtkion.

Gruß
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.04.2010, 10:54     Titel:
  Antworten mit Zitat      
Hallo

versuch mal so,
dann such nach NaNs:
Code:

fid      = fopen('bsp2.txt');
Messreihe = fread(fid);
fclose(fid);
Werte = str2num(regexprep(sprintf('%c',Messreihe),'[A-Za-z]+','NaN'));

pos = find(isnan(Werte))
if ~isempty(pos)
 fprintf('Fehlmessung in Zeile: ')
 fprintf('%d\t',pos);
 fprintf('\n');
end
 
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.