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

Textdatei in Matlab einlesen

 

tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2013, 18:21     Titel: Textdatei in Matlab einlesen
  Antworten mit Zitat      
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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 06.09.2013, 19:02     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 11:12     Titel:
  Antworten mit Zitat      
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

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.09.2013, 12:16     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 14:05     Titel:
  Antworten mit Zitat      
Hallo Jan,

ja hast du recht einfach mal diag würde schon reichen.ich habe bisschen komisch versucht. Smile

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

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.09.2013, 16:16     Titel:
  Antworten mit Zitat      
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:
Code:
data = ['a', 'b', 'c', 'd', 'f', 'g'];  % einfacher: 'abcdfg'

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:
Code:
Buchstaben = {'a', 'b', 'c', 'd', 'f', 'g'};
Werte = rand(1, 6);
for k = 1:length(Werte)
  S.(Buchstaben{k}) = Werte(k);
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 18:48     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 11.09.2013, 18:59     Titel:
  Antworten mit Zitat      
hallo Jan nochmal,

es ist mir jetzt klar.Vielen dank
 
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.