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?
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 clearall closeall 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
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?
_________________
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.
_________________
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
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
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.