Zugriff auf Indexvektor außer auf einen bestimmten Eintrag
Chrischi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.03.2014, 13:57
Titel: Zugriff auf Indexvektor außer auf einen bestimmten Eintrag
Hallo goMATLAB-Community,
ich möchte, abhängig von bestimmten geometrischen Eigenschaften, unterschiedliche Berechnungen bezüglich einer Matrix, die Werte bezogen auf die geometrischen Punkte beinhaltet, durchzuführen.
Hierfür habe ich Indexvektoren erstellt, in denen ein NaN-Eintrag bezüglich x- oder y-Koordinate für einen nicht vorhandenen geometrischen Nachbarn steht.
Nun möchte ich innerhalb der jeweiligen Berechnung auf einen Wert in Abhängigkeit des Index des NaN-Wertes in den Indexvektoren zugreifen. Im Folgenden ein Beispielcode, der das ganze vielleicht ein wenig klarer darstellt:
indexx - Indexvektor bezüglich der x-Koordinate
indexy - Indexvektor bezüglich der y-Koordinate
Code:
% Beispielcode:
for r = 1:size(Pn,1) for s = 1:size(Pn,2)
indix = find(isnan(indexx(r,:)));
indiy = find(isnan(indexy(r,:)));
Pn(r,s,2) = Pn(r,s,1)+Pn(indexx(r,~indix),s,1);
end end
Der Vektor indexx ist ein Vektor der Größe 2. Der Zugriff auf den Wert des nicht-NaN-Wertes mit der Syntax "indexx(r,~indix)" ergibt eine leere Menge. Leider habe ich keine andere Möglichkeit des "Gegenzugriffs" gefunden. Da ich nun keine manuellen Zuweisungen durchführen möchte, hoffe ich, dass mir hier jemand mit der Syntax helfen kann.
bin mir nicht sicher, ob ich das Problem verstehe, aber willst du vielleicht einfach in der Schleife im find-Befehl nach "nicht-NaN" fragen?
Code:
for r = 1:size(Pn,1) for s = 1:size(Pn,2)
indix = find(~isnan(indexx(r,:)));
indiy = find(~isnan(indexy(r,:)));
Pn(r,s,2) = Pn(r,s,1)+Pn(indexx(r,indix),s,1);
end end
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.