Verfasst am: 07.07.2009, 09:52
Titel: Hilfe bei for-SChleife
Hi,
ich brauche unbedingt Hilfe bei einem Problem. Ich will eine neue Matrix erstellen und nenne sie mal x2. Diese soll 10x20 groß sein. Als erstes habe ich diese indiziert (wenn man das so nennt), also x2=zeros(10,20) gebildet.
Ich habe jetzt zwei andere Matrizen X und Y mit der Größe 10x20 und eine andere Matrix x die 15x30 groß ist. Ich weiß, dass alle Werte, die in X und Y auftauchen auch in x zufinden sind. Und ich will jetzt den Wert von x an den Stellen finden,die den Werten von X und Y entsprechen. Wenn also zum Beispiel in X(2,4)= 7 ist und Y(2,4)=10, will ich wissen, wie der Wert von x an der Stelle x(10,7)=? lautet. Diese Werte möchte ich dann in der neuen Matrix x2 speichern, damit ich sie später weiter verwenden kann. Ich habe das ganze über folgende Schleife probiert:
Das klappt aber nicht. Ich bekomme als Fehler immer "??? Index exceeds matrix dimensions." angezeigt. Mir ist auch völlig klar, warum ich diesen Fehler bekomme, aber ich schaffe es leider nicht alleine ihn zu beheben und vielleicht kann mir jemand helfen.
Ich bin für jeden Tipp dankbar!
Viele Grüße
edit by steve: Code-Umgebung ergänzt und formatiert. Bitte zukünftig selbstständig formatieren. Danke!
die einzige Möglichkeit, die mir einfällt ist: Einer oder mehrere Werte aus X oder Y ist größer als 15 bzw 30. Ansonsten sieht der Code soweit richtig aus...
Hier mal ein Code der bei mir funktioniert:
Code:
x = rand(15,30);
x2 = zeros(10,20);
% ganzzahlige Zufallszahlen zwischen 1 und 15 bzw. 30
X = round((15-1).*rand(10,20)+1);
Y = round((30-1).*rand(10,20)+1);
for u=1:size(X,1) for v=1:size(X,2)
x2(u,v)=x((X(u,v)),(Y(u,v)));
end;
end
Hi,
Danke für deine schnelle Antwort. Du hattest recht, die Werte waren zu groß. Aber durch tauschen von X und Y hat es funktioniert .
Dankeschön, viele Grüße
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.