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

Cell-Array und Double zusammenfügen

 

Abschlussarbeit
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 17.05.2013, 09:10     Titel: Cell-Array und Double zusammenfügen
  Antworten mit Zitat      
Hallo zusammen,

Gegeben:
- Cell-Array (2x), Double
- Inhalt Cell-Array: Namen / Strings
- Inhalt Double: Koordinaten (liegen als Tabelle vor)
- Größe Cell (Bsp: 1x1 Zeilenanzahl: 1, Spaltenzahl: 1)
- Größe Double (Bsp: 911x6, 1500x6, Zeilenanzahl variabel, Spaltenzahl: 6)

Frage:
Ist es möglich, an die Tabelle der Koordinaten (double) rechts an jede Zeile beide Inhalte der Cell-Array´s anhzuhängen? Bzw. wie kann die Problematik der unterschiedlichen Größen und Werteeigenschaften (Double vs. Cell) umgehen werden?

Gruß,
Abschlussarbeit
_________________

Danke für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ich verstehe die Beschreibung offen gesagt nicht. Insbesondere: was meinst du mit 2x?

Grundsätzlich vermute ich, dass das ein Fall für num2cell oder mat2cell sein könnte.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Abschlussarbeit
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 17.05.2013, 09:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

mit "2x" meine ich, dass ich 2 Cell-Array´s habe...idealerweise füge ich somit 2 Spalten rechts hinzu...

hab gerade was gefunden, was evtl. mein Problem lösen könnte...ich muss es mal ausprobieren!

http://www.gomatlab.de/cell-array-m.....ray-verbinden-t13501.html
_________________

Danke für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Abschlussarbeit
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 21.05.2013, 08:55     Titel:
  Antworten mit Zitat      
Hallo ihr,

folgendes Problem:
Beim tabellarischen Zusammenfügen von Cell und Double-Werten, werden die Double-Werte nicht mehr "ausgeschrieben" sondern nur noch als bspw. 118x6 double-array angezeigt. Ich muss also nochmal draufklicken, damit ich alle beinhalteten Koordinaten sehen bzw. auswerten kann.

Gibt es eine Möglichkeit, die Tabelle oder das Einfügen so umzuwandeln, dass die Koordinaten im Double-Array mir gleich eine Ebene weiter oben angezeigt werden zusammen mit der "Strings"?

Bsp: siehe Anhang

Code:
%% Workspace und Commandfenster löschen
clear all
close all
clc
%% Pfad einlesen
getpath = uigetdir;
pfad=genpath(getpath);
pfad=strsplit(pfad, ';')';
%% Variablendeklaration
coords=[];
RobModel=[];
%% Schleife: Roboter
for q=1:numel(pfad)
    pth=pfad{q};
    listeROB= dir(fullfile(pth,'$robcor.dat'));
    filesROB= {listeROB.name};
    contentROB = cell(size(filesROB));
    % Roboter
    for l=1:numel(filesROB)
    contentROB{l} = fileread(fullfile(pth,filesROB{l}));
    RobModelTemp = regexp(contentROB{l},'\w*"#(.*?)"\w*','match');
    RobModel =[RobModel;RobModelTemp];
    end
end
%% Schleife: Pfade werden bzgl. entsprechender Dateien durchsucht
for m=1:numel(pfad)
    pth=pfad{m};
    % Auflistung der im Verzeichnis vorhandenen Dateien
    listeFO = dir(fullfile(pth,'folge*.dat'));
    % Anzahl der Dateien
    filesFO = {listeFO.name};
    % Größe der Zelle =f(Anzahl der Dateien)
    contentFO = cell(size(filesFO));
    %% Schleife: Folgen-Koordinaten
    for k=1:numel(filesFO)
    contentFO{k} = fileread(fullfile(pth,filesFO{k}));
    coordsTempFO = regexp(contentFO{k},'^DECL.*X\s*([-0-9.]+),\s*Y\s*([-0-9.]+),\s*Z\s*([-0-9.]+),\s*A\s*([-0-9.]+),\s*B\s*([-0-9.]+),\s*C\s*([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
    coordsTempFO = reshape(str2double([coordsTempFO{:}]),6,[])';
        if k==1
        coords=[coords;RobModel(1,1)]; % !!! Roboternamen werden fortlaufend in die Tabelle hinzugefügt
        RobModel(1,:)=[];
        end
    coords=[coords;coordsTempFO];
    end
   
end


coords.JPG
 Beschreibung:

Download
 Dateiname:  coords.JPG
 Dateigröße:  24.8 KB
 Heruntergeladen:  501 mal

_________________

Danke für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das ist schwierig. Als Textdatei wäre das einfacher, aber in Variablen bist du darauf angewiesen, dass jede Zeile dieselbe Anzahl Spalten hat.

So würde ich empfehlen, tatsächlich den Inhalt unten anzufügen und das dann wieder in einzelne Zellen umzuwandeln (cell2mat / num2cell).

Bei dem umfangreichen Code müsste ich für einen genauen Vorschlag das zumindest reproduzieren können.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Abschlussarbeit
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 21.05.2013, 10:19     Titel:
  Antworten mit Zitat      
Hm, danke erstmal!
aufgrund dessen, dass die Namen immer in unterschiedlichen Zeilen der zusammengefügten Tabelle stehen, ist es für mich schwierig diese wieder umzuwandeln.

Vielleicht ist mein Ansatz auch falsch. Nochmal zum Verständnis:
Ich Möchte gern eine Zuordnung von Bezeichnungen zu den jeweiligen Koordinaten herstellen.
Gibt es evtl. eine Lösung dafür, den Namen auszulesen (schon geschehen) und eine Tabelle zu erstellen, die den ausgelesenen Namen trägt und somit alle entsprechenden Koordinaten wandern?

D.h.: Kann man einen variablen Namen als neunen Variablenindex verwenden?
_________________

Danke für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das klingt nun nach Struktur oder Container Map.
Allerdings siehst du da immer nur die Daten für einen Roboter. Ist das gewünscht?

Vor allem die Frage: brauchst du die Übersichtlichkeit in der Variablen oder wäre es vielleicht einfacher, eine Text- oder Excel-Datei zu erstellen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Abschlussarbeit
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 21.05.2013, 10:43     Titel:
  Antworten mit Zitat      
ok...Ziel es ist am Ende nach Roboter zu sortieren und alle Koordinaten des Roboters (mit der gleichen Bezeichnung) drin zu haben...Funktioniert das mit dieser Map-Funktion?

Ich will die Koordinaten danach als Punktewolke plotten..von daher ist eine derartige Übersichtlichkeit schon ganz sinnvoll.
_________________

Danke für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Ziel es ist am Ende nach Roboter zu sortieren

Heißt was? Dass der gleiche Robotername mehrfach vorkommt und die Daten für jeden Roboter zusammengefasst werden sollen?

Zitat:
Ich will die Koordinaten danach als Punktewolke plotten..von daher ist eine derartige Übersichtlichkeit schon ganz sinnvoll.

Sinnvoll vielleicht, aber nicht nötig. Man kann die Daten da auch gut getrennt verwalten. Beispiel:

Code:
labels = {'name1', 'name2'};
data = {rand(5,5), rand(5,5)};
for I = 1:2
    figure
    scatter(data{I}(:,1), data{I}(:,2))
    title(labels{I})
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Abschlussarbeit
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 03.05.13
Wohnort: ---
Version: 2013a
     Beitrag Verfasst am: 22.05.2013, 10:20     Titel:
  Antworten mit Zitat      
danke Harald!
Zitat:
Heißt was? Dass der gleiche Robotername mehrfach vorkommt und die Daten für jeden Roboter zusammengefasst werden sollen?

Genau...im Moment wird der Robotername in die Tabelle eingefügt, die Koordinaten darunter und dann kommt drunter der nächste Roboter usw...am Ende steht eine Tabelle mit Namen und Koordinaten im Wechsel...bissel ungeschickt, oder?

dein Code werde ich gleich mal ausprobieren und einbauen und das Resultat melden!

Gruß
_________________

Danke für die Hilfe
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.