|
|
Textdatei in Matlab einlesen |
|
tatanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.09.2013, 18:21
Titel: Textdatei in Matlab einlesen
|
 |
Hallo an alle,
ich habe folgendes Problem. Ich konnte leider nichts in alten Foreneinträgen finde.
Ich würde gerne eine txt.-Datei nach Matlab auslesen.
ich habe es mit textread versucht. Das hat aber nicht geklappt.
a 0.001296
b 0.003954
c 0.000230
d 0.000974
e 0.000080
f 0.000056
es würde auch reichen wenn ich die Buchstaben und die Zahlen als matrix haben würde
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 06.09.2013, 19:02
Titel:
|
 |
Zitat: |
Ich konnte leider nichts in alten Foreneinträgen finde. |
das kann ich irgendwie nicht glauben.
Zitat: |
ich habe es mit textread versucht. Das hat aber nicht geklappt. |
hat nicht geklappt ist nicht sehr informativ fehlermeldungen und code ist hier angebracht. der thread richtig fragen bietet sich für neulinge immer an. sihe meine signatur. gruesse winkow
_________________
richtig Fragen
|
|
|
tatanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 11:12
Titel:
|
 |
Hallo nochmal,
ich habe soweit was geschafft aber habe kleines Problem.
es ist erstmal meine k.txt Datei
a 0.001296
b 0.003954
c 0.000230
d 0.000974
f 0.000080
g 0.000056
und den Aufzurufen
[Buchstaben,x]=textread('k.txt','%s%f')
x=sprintf('%1.6f\n', x) %% es ist hier einmal um zu vermeiden aufzurunden.
x=[x] %% die ganze zeile wollte ich in einer 1 zu 5 matrix einziehen.
danach will ich die ganze Zahlen in Diagonale haben.Um das hinzubekommen habe ich mir überlegt dass ich mir einer 5 zu 5 einheitmatrix meine x matrix multipziere.
w=diag(ones(5,1)) %% einmal einheitsmatrix
z=w*x
ich kann leider den letzten Schritt nicht hinbekommen.Es liegt daran dass ich den x nicht richtig in Matrixform hinbekommen habe.glaub ich mindestens.
freu mich wenn jemand sich angucken könnte.
danke im Voraus.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 12:16
Titel:
|
 |
Hallo tatanka,
Hat Deine Erklärung etwas mit der Orginal-Frage zu tun?
Was ist nun noch genau das Problem?
TEXTREAD wird leider in Zukunft nicht mehr unterstützt und es wird geraten das umständlichere TEXTSCAN zu verwenden. Schade eigentlich.
Zitat: |
x=sprintf('%1.6f\n', x) %% es ist hier einmal um zu vermeiden aufzurunden. |
Das verstehe ich nicht. Wieso wird nun aus x ein String erstellt?
Zitat: |
x=[x] %% die ganze zeile wollte ich in einer 1 zu 5 matrix einziehen. |
Der Code ist sinn-frei. Was bedeutet "Zeile in eine Matrix einziehen"?
Meinst Du "diag(x)"?
Gruß, Jan
|
|
|
tatanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 14:05
Titel:
|
 |
Hallo Jan,
ja hast du recht einfach mal diag würde schon reichen.ich habe bisschen komisch versucht.
jetzt habe ich einmal Buchstaben=[a b c d f g]
und die zahlen x=[1 2 3 4 5 6] z.b
z.b ich will dass a=1 b=2 ...
a(1)=Buchstaben(1)
..
aber gibt mir einen Fehler
"Conversion to cell from double is not possible."
weisst du vielleicht woran das liegen kann?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 16:16
Titel:
|
 |
|
 |
|
Hallo tatanka,
Zitat: |
jetzt habe ich einmal Buchstaben=[a b c d f g]
und die zahlen x=[1 2 3 4 5 6] z.b |
Das ist noch keine klare Definition der vorliegenden Daten. "[a b c d f g]" ist keine valide Matlab-Syntax für "Buchstaben". Meinst Du:
Zitat: |
z.b ich will dass a=1 b=2 ...
a(1)=Buchstaben(1) |
Hier ist nun unklar, ob das wieder eine ungefähre Beschreibung ist, oder Matlab Code. In letzterem Fall ist nicht klar, welchen Typ "a" hat, aber die Fehlermeldung sieht so aus, als sei es ein Cell.
Bitte poste den ganzen relevanten Code und immer eine vollständige Kopie der Fehlermeldung. Matlab-Syntax ist die beste Wahl um Daten in einem Matlab-Forum zu erklären.
Falls Du automatisch der Variablen "a" den Wert 1 zuweisen möchtest, "b" den Wert 2 etc, lautet der immer wieder gegebene Ratschlag: Mache das nicht. Das automatische Erzeuigen von Variablen ist immer schwer zu debuggen, kaum nachzuvollziehen, eine heftige Bremse für Matlab's Performance und unpraktisch.
Ein Struct mit dynamischen Feld-Namen ist eine bessere Wahl:
Gruß, Jan
|
|
|
tatanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 18:48
Titel:
|
 |
Hallo Jan,
Vielen dank für die Antwort.Es hilft mir schon aber hatte noch ein kleines Problem damit.
Ich sehe meine Werte nur wenn ich "S" eingebe.
wenn ich z.B mit a+b machen würde,macht nichts.
meine Frage ist jetzt wie kann ich mit den Buchstaben,die schon ein Zahl haben weiterarbeiten?
Grüße
tatanka
|
|
|
tatanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 18:59
Titel:
|
 |
hallo Jan nochmal,
es ist mir jetzt klar.Vielen dank
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|