Verfasst am: 06.04.2016, 09:03
Titel: 3d Matrix mit 3d Maske indizieren // Verständnisproblem
Hallo zusammen,
ich habe im Laufe des morgens über einem Problem gesessen, was augenscheinlich leicht lösbar ist, ich aber trotzdem daran scheitere:
Ich habe eine 3d Matrix (56x4x188), in der ich bestimmte Abschnitte extrahieren will.
Die Indizes dieser Abschnitte habe ich ebenfalls in einer anderen 3d-Matrix (56x4x5).
Nun kann man das meines Wissens nach am besten mit linear indexing bewerkstelligen, nur hier stellt sich mein Problem:
Wie formatiere ich meine 3d-Index-Matrix um, damit ich drei Vektoren für ind2sub erhalte?
Ich kann zwar versuchen, das ganze manuell mit repmat & reshape mehr oder weniger händisch zu basteln, aber erstens habe ich hier ständig Denkfehler, welche Dimension denn gerade wiederholt werden muss, und außerdem habe ich irgendwie das Gefühl, dass eine viel elegantere Möglichkeit existiert, die ich nur nicht sehe.
Irgendwelche Vorschläge?
Hier mal ein Minimalbeispiel, wie ich zur Zeit versuche, das Problem zu lösen
Code:
data = rand(56,4,188);
index = round((rand(56,4,5)*187)) + 1;
% und dann wird's schon unelegant & unübersichtlich
tmpZ = reshape(permute(index,[3,2,1]),1,numel(index));
tmpX = repmat(1:56,4*5,1);
tmpXarray = reshape(permute(tmpX,[21]),1,numel(index));
tmpY = repmat(1:4,56*5,1);
tmpYarray = reshape(tmpY,1,numel(iMinLine));
% ich erhalte vielleicht das, was ich wollte, % die Chance ist aber groß, dass oben was vertauscht wurde
dataROI = data(linIndex);
dataROI = reshape(dataROI,56,4,5);
Verfasst am: 06.04.2016, 13:48
Titel: Re: 3d Matrix mit 3d Maske indizieren // Verständnisproblem
Hallo Kasi,
Du postest bisher Code, von dem Du nicht weißt, ob er das macht, was Du erwartest. Das reicht noch nicht als Erklärung. Kannst Du ein kleines Beispiel posten, dass genau die gewünschten Ergebnisse produziert? Wie sind die "Abschnitte" denn in der 2. Matrix gespeichert?
Gruß, Jan
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.