WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hilfe bei for-SChleife

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 09:52     Titel: Hilfe bei for-SChleife
  Antworten mit Zitat      
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:

Code:
for u=1:size(X,1)
    for v=1:size(X,2)
        x2(u,v)=x((X(u,v)),(Y(u,v)));
    end;
end


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!


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 10:14     Titel:
  Antworten mit Zitat      
Moin,

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
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 11:16     Titel:
  Antworten mit Zitat      
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 Smile .
Dankeschön, viele Grüße
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.