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

Matrix mit Zahlen und Buchstaben

 

botzelmann
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2014, 16:46     Titel: Matrix mit Zahlen und Buchstaben
  Antworten mit Zitat      
Hi zusammen,

Ich arbeite mich in Matlab ein und weiß nicht, ob das so möglich ist.

Kurz zu meiner Motivation:

Ich möchte mit Matlab basierend auf einer Punktewolke ein CAD Flächenmodell im IGES Format aufbauen. Da ich die Punktewolke bereits in Matlab aufbereite, möchte ich mira auch den notwendigen IGES-Code von Matlab generieren lassen:
In einem IGES File sind erstmal alle nötigen Daten (zB Koordinatenpunkte und Flächen) zeilenweise in Festpunktdarstellung mit 8 Zeichen pro Feld gelistet. Drei Punkte werden z.B. so aufgeführt (erstmal unwichtig was welches Feld bedeutet und wie es weitergeht):

Code:
    116       1       0       0   10000       0       0       000000001D      1
     116       0       0       1       0                Punkt.1        0D      2
     116       2       0       0   10000       0       0       000000001D      3
     116       0       0       1       0                Punkt.2        0D      4
     116       3       0       0   10000       0       0       000000001D      5
     116       0       0       1       0                Punkt.3        0D      6


Da dies eigentlich nichts anderes als eine Matrix ist, möchte ich mir solche Punkte im exakt gleichen Schema aus Matlab ausfallen lassen.

Zu meinem bisherigen Vorgehen

Ich hatte geplant Strings in der nötigen Festpunktdarstellung zeilenweise zu erzeugen und diesen in einer simplen For-Schleife in einem Spaltenvektor abzulegen. Das Ergebnis möchte ich dann z.B. im Texteditor in meine IGES Datei einfügen (oder im Idealfall fällt das Ding ganz automatisch aus Matlab raus)

Aktuell sieht mein einfacher Testcode mit nur 3 Spalten und 10 Zeilen so aus.

Code:
for p = 1 : 10
    F1 = 116
    F2 = 12337
    F3 = p

    str1 = sprintf('%8d',F1,F2,F3)
   
    Directory(p,1) = cellstr(str1)
end
Directorychar = char(Directory)


Wenn ich rein mit Zahlen rechne, passt schonmal von der Struktur her zum IGES-File:
Code:
Directorychar =

     116   12337       1
     116   12337       2
     116   12337       3
     116   12337       4
     116   12337       5
     116   12337       6
     116   12337       7
     116   12337       8
     116   12337       9
     116   12337      10


Allerdings benötige ich u.a. Buchstaben an den richtigen Positionen in der Matrix, damit eine IGS aufgebaut werden kann. Ich möchte diese z.B. so einbringen (F2)

Code:
for p = 1 : 10
    F1 = 116
    F2 = "ABC" %Buchstaben
    F3 = p

    str1 = sprintf('%8d',F1,F2,F3)
   
    Directory(p,1) = cellstr(str1)
end
Directorychar = char(Directory)


In diesem Fall wird in die 2. Spalte nicht "ABC" eingefügt, sondern neue Spalten erzeugt.

Code:
Directorychar =

     116      65      66      67       1
     116      65      66      67       2
     116      65      66      67       3
     116      65      66      67       4
     116      65      66      67       5
     116      65      66      67       6
     116      65      66      67       7
     116      65      66      67       8
     116      65      66      67       9
     116      65      66      67      10


Bekommt man das irgendwie hin, das so etwas rauskommt? Ich hoffe, dass ich sowohl das Problem als auch Vorgehen verständlich schildern konnte (wie gesagt: Absoluter Neuling).

Code:
Directorychar =

     116      ABC        1
     116      ABC        2
     116      ABC        3
     116      ABC        4
     116      ABC        5
     116      ABC        6
     116      ABC        7
     116      ABC        8
     116      ABC        9
     116      ABC      10
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.07.2014, 17:14     Titel:
  Antworten mit Zitat      
Hallo

du kannst in Matlab auch direkt in ein Text-File schreiben
schaue dir in der Doku die Beispiele zu FPRINTF (3.Beispiel) an

Code:


zu deiner Frage, in dem du SPRINTF auch für String verwendest:

Code:

    F1 = 116
    F2 = 'ABC' %Buchstaben
for p = 1 : 10
    F3 = p
    if p == 1
       str = sprintf('%8d%8s%8d',F1,F2,F3);
    else
       str = sprintf('%s\n%8d%8s%8d', str,F1,F2,F3)
    end
end
Directorychar = str
 
Private Nachricht senden Benutzer-Profile anzeigen
 
botzelmann
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2014, 09:46     Titel:
  Antworten mit Zitat      
top, vielen dank. Smile
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.