|
|
Strcture Felder vertauschen? |
|
Derak |

Forum-Anfänger
|
 |
Beiträge: 40
|
 |
|
 |
Anmeldedatum: 23.10.08
|
 |
|
 |
Wohnort: BZ
|
 |
|
 |
Version: R14
|
 |
|
|
 |
|
Verfasst am: 19.11.2008, 08:40
Titel: Strcture Felder vertauschen?
|
 |
Hallo liebe Matlabfreunde.
Ich habe mal wieder ein Problem mit einem Strct. Ich habe ein 5x1 Struct, welches schon sortiert wurde und wo bestimmte Werte rausgenommen wurden. Soweit so gut. Für eine Bildregistrierung muss ich aber die Werte im ersten Feld mit den Werten im zweiten Feld vertauschen.
so sieht mein Code aus:
ich hab folgendes versucht
bekomme da aber schon beim ersten Befehl die Fehlermeldung:
??? Index exceeds matrix dimensions.
Was mache ich falsch? Möchte einfach nur Feld 2 auf Position 1 legen und umgekehrt.
Danke schonmal für eure Hilfe
Gruß
Derak
|
|
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 19.11.2008, 11:09
Titel:
|
 |
Hallo Derak,
verstehe ich das richtig? reginp2 ist nach diesem Befehl nur noch 4x1.
Also verursacht der Zugriff auf reginp2(5) in der nächsten Zeile einen Fehler. Du meinst wahrscheinlich:
Oder einfach:
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Derak |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 40
|
 |
|
 |
Anmeldedatum: 23.10.08
|
 |
|
 |
Wohnort: BZ
|
 |
|
 |
Version: R14
|
 |
|
|
 |
|
Verfasst am: 20.11.2008, 10:51
Titel:
|
 |
Hallo Bijick,
ja das hast du richtig verstanden. Es ist nachher ein 4x1 Struct.
Hab die Sachen ausprobiert und es geht wunderbar. Hatte da wohl einen kleinen Denkfehler b . Danke für den Hinweiß.
benutze jetzt aber doch lieber den code von dir
da du dich damit auszukennen scheinst hätte ich noch eine kleine frage.
Mein Struct beinhaltet ja 4 Felder.In jedem Feld sind jeweils die Areas und Centroids aufgeführt. Mit diesem Befehl wandle ich ja die ganze Sache erstmal in einen Vektor um und sortiere die ganze Sachen und behalte bei das Struct bei.
ich möchte nun versuchen die Centroids nach Y-Werten z.B. zu ordnen. Problem an der Sache ist das Centroid jeweils 2 Werte enthält. DIe X-Werte und Y-Werte von den Punkten.
wenn ich das versuche
kommt die fehlermeldung:
??? Field reference for multiple structure elements that is followed by more reference blocks is an error.
wäre für einen Hinweiß sehr dankbar
Gruß
Derak
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 20.11.2008, 18:41
Titel:
|
 |
Hallo Derak,
soweit ich das sehe, geht das nur über einen Umweg:
Aber ich lass mich auch gern von anderen berichtigen. Eine Anmerkung hätte ich noch: Die Felder von reginp2 sind nach dem normalen Sprachgebrauch Area und Centroid (auf englisch field). Das hatte mich zuerst verwirrt. Das, was Du meinst, hat leider keinen so schönen Namen. Man kann sagen: reginp2 ist ein 4x1-struct, oder ist ein sruct-Vektor mit vier Elementen. Ich weiß, dass array auch Feld heißt, aber meist belässt man es bei array.
Willst Du wirklich im letzten Schritt das ganze reginp2 überschreiben?
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Derak |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 40
|
 |
|
 |
Anmeldedatum: 23.10.08
|
 |
|
 |
Wohnort: BZ
|
 |
|
 |
Version: R14
|
 |
|
|
 |
|
Verfasst am: 21.11.2008, 08:54
Titel:
|
 |
Hallo Bijick,
danke erstmal für die vielen Hilfestellungen und Erklärungen. Wie gesagt beschäftige mich noch nicht all zu lang mit Matlab und hab da meist noch Probleme mit den Begriffen
Hab deine Variante ausprobiert. Doch leider kommt nun folgende Fehlermeldung:
??? Index exceeds matrix dimensions.
schreibe ich folgendes, also schreibe anstatt der 2 eine 1
legt er mir einen 1x20 Vektor an wo alle X und Y-Werte zwar sortiert aber untereinander gemischt sind. Würde nachher gern wieder ein 4x1 Struct haben wollen, deswegen überschreibe ich ja auch reginp2.
Um deine Frage zu beantworten. Nein es ist nicht zwingend notwendig reginp2 zu überschreiben. es kann auch eine andere Variable angelegt werden. Wird dann zwar schwer die ganzen Variablen(25) auseinander zu halten aber das passt schon
Danke nochmal für deine Mühe
P.s. Structe scheinen doch etwas schwieriger zu sein als ich dachte
Gruß
Derak
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 21.11.2008, 10:51
Titel:
|
 |
Hallo Derak,
welche Größe hat denn A? Also was ergibt
Und welches davon sind die x-, welches die y-Werte?
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Derak |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 40
|
 |
|
 |
Anmeldedatum: 23.10.08
|
 |
|
 |
Wohnort: BZ
|
 |
|
 |
Version: R14
|
 |
|
|
 |
|
Verfasst am: 21.11.2008, 12:06
Titel:
|
 |
Hallo Bijick
also bei size(A) sagt er mir 1x20
wenn ich mir A anschaue dann gehören immer 2 aufeinander folgende Werte zusammen.
Also
A(1,1) = X-Wert vom ersten Paar, A(1,2) = Y-Wert von ersten Paar,
A(1,3) = X-Wert vom zweiten Paar,A(1,4) = Y-Wert vom zweiten Paar
Ich hoffe das hilft weiter.
Gruß
Derak
|
|
|
dib0r |

Forum-Guru
|
 |
Beiträge: 413
|
 |
|
 |
Anmeldedatum: 09.05.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2008, 13:10
Titel:
|
 |
Hallo,
sollte dir weiterhelfen. Du kannst auch
anstelle von "sort" benutzen.
MfG
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|