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

Fehlermeldung bei for-Schleife

 

Lena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2009, 09:53     Titel: Fehlermeldung bei for-Schleife
  Antworten mit Zitat      
Hi,
ich bekomme bei einer for-Schleife immer die Fehlermeldung:
??? Subscripted assignment dimension mismatch.
Die Schleife hat folgenden Code:
Code:

for u=1:size(l,1)
    for v=1:size(l,2)
        lns(u,v)=(l{u,v}'*w{u,v})/sum(w{u,v});
    end;
end;
 

dabei sind die einzelnen Zelleneinträge von l und w gleich groß, so dass ich auf jeden Fall die Skalarmultiplikation, wie sie in der Schleife steht, durchführen kann. Außerdem sind l und w beide <25x305 cell> groß. Die Variablen u und v werden das erstemal in dieser Schleife verwendet.
Ich habe keine Ahnung, warum ich diese Fehlermeldung bekomme, da ich noch andere Schleife programmiert habe, die genauso aussehen und bei denen ist es gar kein Problem. Die laufen ohne Probleme durch und liefern mir das gewünschte Ergebnis. Kann mir da jemand weiterhelfen? Vielleicht sehe ich den Fehler auch schon nicht mehr, da ich jetzt schon seit einer Stunde an diesem Problem sitze.
Danke für jeden Tip,
vg, Lena


DeusRa
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2009, 10:05     Titel:
  Antworten mit Zitat      
Hallo,

bin gerade nicht an meinem Matlab-PC, deshalb kann ich momentan den Code nicht überprüfen, aber versuch mal folgendes:
Code:

for u=1:size(l,1)
    for v=1:size(l,2)
        lns(u,v)=(l{u,v}'  .* w{u,v})/sum(w{u,v});
    end;
end;
 

oder
Code:

for u=1:size(l,1)
    for v=1:size(l,2)
        lns(u,v)=(l{u,v} .* w{u,v})/sum(w{u,v});
    end;
end;
 


Ich nehme an, dass
Code:

l{u,v} * w{u,v}
 

also ohne den Punkt ".*" dir einen Vektor ausgibt und keine Zahl.

Sag mal an, ob´s geklappt hat.

Grüße
DeusRa
Private Nachricht senden Benutzer-Profile anzeigen
 
Lena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2009, 10:47     Titel:
  Antworten mit Zitat      
Hi,
habe gerade selber den Fehler gefunden Smile
Aber Danke für deine Mühe. Das mit der Skalarmultiplikation klappt auch ohne den Punkt. Mein Problem war nur, dass sich leere Einträge in l befunden haben. Dadurch konnte er natürlich nix mit einander multiplizieren. Das ist mir eben auch nur durch Zufall aufgefallen, als ich deine Codes getestet habe.
Danke nochmal,
vg, Lena
 
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.