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

Matlab lässt beim Umkodieren immer einen Wert aus

 

Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2014, 11:15     Titel: Matlab lässt beim Umkodieren immer einen Wert aus
  Antworten mit Zitat      
Hi,
ich habe noch sehr wenig Erfahrung mit Matlab aber bis jetzt hab ich alles einigermaßen hinbekommen. Also es läuft an sich, aber in einer Schleife soll er mehrere zeilen einer Datei durchsehen und vier verschiedene Wörter darin suchen (jedes kommt mehrmals vor), diese in die Zahlen 1-4 umkodieren und in der vorkommenden Reihenfolge in eine neue Variable schreiben. An sich klappt das, nur einmal findet er das eine Wort beim umkodieren nicht. Wenn ich mir die Zeilen anzeigen lasse, in denen das Wort steht, zeigt es diese mit an, nur beim umkodieren überspringt Matlab das eine.
Was kann ich da machen?
Danke schonmal für eure Hilfe!


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.07.2014, 11:17     Titel:
  Antworten mit Zitat      
Hallo,

bitte ein reproduzierbares Beispiel zur Verfügung stellen (Code + Datei). So werde zumindest ich nicht daraus schlau.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2014, 11:50     Titel:
  Antworten mit Zitat      
Matlab soll schauen, in welchen Zeilen von xwaitdop 'wait' steht und dann in 4 Dateien (xalcr, xnoalcr, xalcnor, xnoalcnor) überprüfen, ob dort die selben Zeilennummern stehen (was der Fall ist). Pro Datei sind die Zeilen aufgeführt, in denen je ein bestimmtes Wort vorkommt. Nun soll Matlab schauen, in welcher Datei welche Zeilennummer steht und der Nummer die Zahl 1-4 zuordnen und dies in eine Neue Variable 'bildabfolge' schreiben.
Code:

e=0;
for xhw=1 : (length(xwaitdop))
    for xar=1 : (length(xalcr))
        if xwaitdop(xhw)==xalcr(xar)+15
            e=e+1;
            bildabfolge(e)=1;
        end;
    end;
    for xnar=1 : (length(xnoalcr))
        if xwaitdop(xhw)==xnoalcr(xnar)+15
            e=e+1;
            bildabfolge(e)=2;
        end;
    end;
    for xanr=1 : (length(xalcnor))
        if xwaitdop(xhw)==xalcnor(xanr)+15
            e=e+1;
            bildabfolge(e)=3;
        end;
    end;
    for xnanr=1 : (length(xnoalcnor))
        if xwaitdop(xhw)==xnoalcnor(xnanr)+15
            e=e+1;
            bildabfolge(e)=4;
        end;
    end;
end;
bildabfolge=bildabfolge'


Hoffe, so ist es verständlicher.
 
Harald
Forum-Meister

Forum-Meister


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

du schreibst von Dateien, aber im Code sehe ich nur Variablen.

Kannst du Beispieldaten zur Verfügung stellen sowie die Ergebnisse, die du von der Anwendung des Codes auf die Beispieldaten erwarten würdest?

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2014, 12:51     Titel:
  Antworten mit Zitat      
Ja im Prinzip sind es Variablen und keine Dateien.
Das hier macht er vor der Schleife oben:
Er sucht in dem hochgeladenen Text-File nach aufeinanderfolgenden Zeilen mit help-help und dann ein darauffolgendes Wait jeweils in der Spalte Code. draufhin schauen, was 15 zeilen darüber steht (welches der 4 Worte, die dann umcodiert werden sollen). Die Zeilen dazu werden nach den Worten sortiert in neue Variablen geschrieben.

Code:
xhelp= strmatch('help',code);
xwait= strmatch('wait',code);
 
%Suche nach 'help' in der Zeile nach einem 'help'
n=0;
for xh=1 : (length(xhelp)-1)
    if xhelp(xh)==xhelp(xh+1)-1      
        n=n+1;
    xhelpdop(n)=xhelp(xh);
end;
end;
xhelpdop=xhelpdop'          
 
%Suche nach 'wait' in der Zeile nach zwei aufeinanderfolgenden 'help'
k=0;
for xhd=1 : (length(xhelpdop))
for xw=1 : (length(xwait))
    if xhelpdop(xhd)==xwait(xw)-2
       k=k+1;
       xwaitdop(k)=xhelpdop(xhd);        
    end;
end;
end;
xwaitdop=xwaitdop'
 
xalcr= strmatch('alc_reward',code);            
xnoalcr= strmatch('no_alc_reward',code);      
xalcnor= strmatch('alc_no_reward',code);      
xnoalcnor= strmatch('no-alc_no_reward',code);  



Als Ergebnis möchte ich eine Variable die mir eine Abfolge von Zahlen zwischen 1 und 4 ausspuckt.

03-100_SM_BU.txt
 Beschreibung:

Download
 Dateiname:  03-100_SM_BU.txt
 Dateigröße:  160.99 KB
 Heruntergeladen:  248 mal
 
Mathe-Ass_not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2014, 21:51     Titel:
  Antworten mit Zitat      
Kann mir keiner irgendeinen Tipp geben, woran das liegen könnte, dass es eine Variable sozusagen überspringt? Bitte!
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 21.07.2014, 08:28     Titel:
  Antworten mit Zitat      
Es ist sehr schwer so einen Tipp zu geben, wenn das nicht vorliegt wonach Harald von drei Tagen gefragt hat: Etwas was die leser hier einfach Ausführen können und nicht spekulieren müssen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2014, 10:47     Titel:
  Antworten mit Zitat      
Ich hab doch alles hochgeladen. Mehr hab ich nicht.
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 21.07.2014, 14:11     Titel:
  Antworten mit Zitat      
Es scheitert schon in der ersten Zeile:

Code:

>> xhelp= strmatch('help',code);
Undefined function or variable 'code'.
 


Sollte 'code' in der Textdatei stecken bitte die Codezeilen ergänzen wie genau diese gelesen wird - es gibt ja eine Vielzahl an Befehlen und Optionen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2014, 14:14     Titel:
  Antworten mit Zitat      
oje, ich hab mir das gerade mal angeschaut. so wie es hier dargestellt wird wenn man es runterladen will, sieht es ja ganz anders aus, als in der ursprünglichen datei. hab aber keine ahnung, wie ich es machen kann, dass es abders aussieht.
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 21.07.2014, 14:28     Titel:
  Antworten mit Zitat      
Ich interpretiere das mal als "Ja, die Information steht im TXT File"... Was ich jetzt immer noch nicht habe ist den Befehl wie die Datei geladen wird. Fall es - was ich nicht glaube - ein Problem mit der Darstellung des Files gibt, bitte als ZIP File hochlade oder irgendein Datebntype der dann umbenannt wird.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2014, 14:54     Titel:
  Antworten mit Zitat      
[D,T]=PersonReadRawData_zurMarkerkorrektur_100sm('100_SM_VP03_HBA_Probe1_Oxy.csv','03-100_SM_BU.txt', 52)

hab jetzt mal noch ne datei angehängt, da stehen die vorherigen befehle auch drinnen.und was davor alles geladen wird.
 
Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2014, 14:57     Titel:
  Antworten mit Zitat      
Das anhängen klappt irgendwie nicht.
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 22.07.2014, 08:01     Titel:
  Antworten mit Zitat      
Guten Morgen,
bitte ließ dir mal diesen Thread durch:
http://www.gomatlab.de/faq-richtig-fragen-t6534.html
und beachten vor allem den Abschnitt: "Minimalbeispiel".

Wenn du den Anhänger nicht an dein Auto anhängen kannst, bringt es nichts, wenn du mit Anhänger und Motor in die Werkstatt gehst - die brauchen auch das AUTO! Und das fehlt.

Die txt (=Anhänger) ist da. Der Motor (=Teil mit Datenauswertung) auch - aber das Auto, also der Programmteil, in welchem die txt eingelesen werden, fehlt!
Somit ist es für uns NICHT nachvollziehbar, welche Daten überhaupt in "code" stehen.


Ansonsten könnte ich wild mutmaßen, dass es evt. daran liegt, dass deine erste Schleife
Code:
for xh=1 : (length(xhelp)-1)

nur bis zum VORletzten Element geht (muss auch, da sonst nicht Lauffähig) du aber das letzte Element nicht anschließend noch gesondert betrachtest und dir dieses dann evt. fehlt.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Mathe-Ass_Not

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2014, 14:38     Titel:
  Antworten mit Zitat      
Ok ich hab das Problem jetzt irgendwie umgangen indem ich die Variablen anders erstellt hab. Trotzdem Danke Smile
 
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.