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

Manuelles Zuordnen von Daten

 

Inferno87
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 31.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 22:34     Titel: Manuelles Zuordnen von Daten
  Antworten mit Zitat      
Hi Leute,

ich hätte mal ein kleines Problem bei der Zuordnung von Daten.
Und zwar habe ich Daten einer Datei, die ich ausgelesen habe und diese möchte ich nun Daten einer anderen Datei Zuordnen und das dann in diese schreiben.

Also das sieht folgendermaßen aus: Ich hab aus einer Datei Zeilenweise Koordinaten ausgelesen.
Das Problem ist nun aber, dass ich die in "name" gespeicherten Angaben nciht zuordnen kann....durch ein eingabefedl oder ähnlich.

Das erste Problem ist aber, dass Die Namen der Pkte nicht in der selben Matrix gespeichert werden können, wie die Pkte, deshalb habe ich das so gelöst:
Code:

x=1;
k=1;
while x<100
   Line=fgetl(fid);
   if Line(2)=='''' ;
         
       name(k,1:23)=Line(3:25);
       Data(k,2)=str2double (Line(50:60));
       Data(k,3)=str2double (Line(61:70));
       Data(k,4)=str2double (Line(end-6:end));
       
 
       k=k+1;    
       end
x=x+1;  
   
end
 


Wie bekomme ich die Werte aus name in die Matrix von Data? Da steht dann immer NaN.


Zum zweiten Problem:

Besipielsweise steht in
Data dann:
- Punkt1 155 236 554
- Punkt2 889 789 231
- Punkt3 225 445 966

und in name2:
- A
- B
- C

Ich möchte nun eine abfrage, in der gefragt wird, welches Element aus name, dem element A entspricht, so dass dann in die datei geshcrieben wird:

A 889 789 231
B 225 445 966
C 155 236 554

Ich hab schon was mit uitable versucht, das klappt aber überhaupt nicht:(

Ich hoffe, ihr könnt mir helfen
Grüße
Inferno
Private Nachricht senden Benutzer-Profile anzeigen


dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 22:50     Titel:
  Antworten mit Zitat      
Irgendwie kann ich deinem Beispiel nicht folgen. Warum bekommt Punkt 2 den Namen "A"?
Private Nachricht senden Benutzer-Profile anzeigen
 
Inferno87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 31.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 23:20     Titel:
  Antworten mit Zitat      
Ja ist blöd zu erklären.
Ich versuch mal den kompletten Zusammenhang darzulegen:

Also ich habe die Datei "rear_susp.sub". Aus dieser werden immer an einer ganz bestimmten Stelle Koordinaten eines Punktes ausgelesen und gespeichert. Dabei wird Zeilenweise ausgelesen und in
- "name" die Namen der Punkte gespeichert und in
- "Data" die 3 Koordinaten

So nun wird eine "Dummydatei.kin" genommen. Diese wird auch Zeilenweise eingelesen und die Zeile gleich in "Ergebnisdatei.kin" gespeichert.

Steht allerdings in der Dummydatei am Anfang der Zeile "Point 1" oder "Point 2" etc. , so soll an diese Stelle die Koordinate aus "rear_susp.sub" geschrieben werden.

Nun ist es aber so, dass ich manuell bestimmen möchte, an welche Stelle der Ergebnisdatei, welche Koordinate aus "rear_susp.sub" steht.

Als Beispiel:

"rear_susp.sub" besteht aus:

arblink_to_bellcrank 1026.0 -250.2 500.0
arb_bushing_mount 801.8 -127.0 1.6
bellcrank_pivot 1026.0 -278.0 420.0

Die Dummydatei.kin wird Eingelesen:

Point 1 Wheel Center
Point 2 Center of Tire Contact
Point 3 Force Application Tire Forces

Ich möchte jetzt durch eine Art Eingebeaufforderung gefragt werden, welchem Punkt aus der Dummydatei.kin "arblink_to_bellcrank" entspricht. Als eine Art Liste oder ähnliches.

Und dann soll in die "Ergebnisdatei.kin" geschrieben werden:

Point 1 Wheel Center 801.8 -127.0 1.6
Point 2 Center of Tire Contact 1026.0 -278.0 420.0
Point 3 Force Application Tire Forces 1026.0 -250.2 500.0


ISt ein bisschen blöd zu erklären Wink
Ich hoffe, es ist nun etwas verständlicher

Danke und Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
muenzi
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 00:13     Titel:
  Antworten mit Zitat      
Hi, also sofern dein Vektor aus m Werten besteht und deine Matrix aus m * n Werten, kannst du beide mit
Code:
zusammenfügen.

Für die Anordnung der Zeilen fällt mir dann spontan ein, dass du noch eine weitere Spalte mit der gewünschten Zeilennummer anfügst. Machst einfach eine Abfrage ob es eine Zeile mit Point 1 oder Point 2 ist und wenn ja gibst du mit input die Zeilennummer vor. Ist es keine solche Zeile, dann soll er die überprüfen ob der i-te Zeilenindex bereits vergeben ist. Wenn ja soll er erst nach oben nach einer leeren Zeile suchen und wenn dort kein Platz ist nach unten. Am Ende mit
Code:
nach der Spalte mit den Zeilennummern sortieren.

Ist sicher nicht effizient, aber sollte grundlegend funktionieren. Befehle die dir helfen können findest du hier:
http://www.gomatlab.de/jede-zeilen-.....ll-verschieben-t3599.html
http://www.gomatlab.de/matrix-nach-.....alte-sortieren-t6447.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Inferno87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 31.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 10:31     Titel:
  Antworten mit Zitat      
Hi,

danke für die shcnelle Antwort. Das Zusammenfügen funktioniert mit
Code:

nicht, da ich die Fehlermeldung bekomme:
"Warning: Out of range or non-integer values truncated during conversion to
character."

Das Problem ist eben, dass ich in
Code:

name(k,1:23)
 

Die Bezeichnugn der Pkte auslese und in
Code:

Data(k,2)
 


die Punkte. Es geht nicht auch die Bezeichnung in Data zu schrieben, da ich nicht weiß, wie ich den String dann konvertiern muss. mit
Code:

funktioniert es nicht

Würde das klappen, so hätte ich ja auch alles in einer MAtrix.
Private Nachricht senden Benutzer-Profile anzeigen
 
muenzi
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 10:43     Titel:
  Antworten mit Zitat      
Inferno87 hat Folgendes geschrieben:
Hi,

danke für die shcnelle Antwort. Das Zusammenfügen funktioniert mit
Code:

nicht, da ich die Fehlermeldung bekomme:
"Warning: Out of range or non-integer values truncated during conversion to
character."

Das Problem ist eben, dass ich in
Code:

name(k,1:23)
 

Die Bezeichnugn der Pkte auslese und in
Code:

Data(k,2)
 


die Punkte. Es geht nicht auch die Bezeichnung in Data zu schrieben, da ich nicht weiß, wie ich den String dann konvertiern muss. mit
Code:

funktioniert es nicht

Würde das klappen, so hätte ich ja auch alles in einer MAtrix.



Wenn der Berg nicht zum Propheten kommt, muss der Prophet halt zum Berg. Wandel doch einfach deine Punkte in Strings um. Dann hast du alles ins Strings, was man mit [A B] wieder zusammensetzen können sollte.

Wenn du noch ein Leerzeichen dazwischen möchtest bastel ich mir immer einen Leerzeichenvektor:
Code:
leerzeichen=char(ones(size(A,1))*str2num(' ')); % erstellt einen Vektor der Länge size(A,1) mit Leerzeichen


Danach einfach mit [A, Leerzeichen, B] zusammenfügen.

Und sollten die Werte unterschiedlich lang sein bietet sich dafür wohl ein cellarray an.
Private Nachricht senden Benutzer-Profile anzeigen
 
Inferno87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 31.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 12:33     Titel:
  Antworten mit Zitat      
Ah Okay....
Code:


hat geholfen...Somit hab ich alles in einer Tabelle
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Inferno87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 31.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2012, 22:55     Titel:
  Antworten mit Zitat      
habt ihr noch ne Ahnung, wie ich mit

Code:

ugetfile
 

ausgewählte Dateien zusammenführen kann?
Also Multiple Select ist ja klar. Aber wie kann ich nun die Inhalte beider Dateien in einer Datei vereinigen?

Ich könnte ja jede der beiden Dateien einzeln nehmen und Zeilenweise auslesen und dann wieder kopieren.
Aber wie kann ich jetzt die ausgewählten Dateien einzeln aufrufen?
als Bsp.:

1.txt: 2.txt:
A 1
B 2

und die beiden sollen nun per multipleselect ausgewählt und zu einer neuen Datei zusammengefügt werden:

3.txt
A
B
1
2

Danke schon mal im Voraus
Grüße
Inferno
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.