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

Inner matrix dimension must agree ?

 

Ismeralda
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2014, 01:40     Titel: Inner matrix dimension must agree ?
  Antworten mit Zitat      
Hallo zusammen,

ich möchte 100 Portfolios nehmen und diese zufällig in zwei Länder investieren. Die Länderdaten habe ich in eine Matrix namens "GESP" gepackt.
Nun habe ich folgendes geschrieben:
Code:

N=100;
for i=1:N;
    W_rand=-0.5+1*rand(10,1);
    W_rand=W_rand/sum(W_rand);
    P_rand=GESP*W_rand
    mu_rand (i,1)=mean(P_rand)*1200;
    std_rand(i,1)=std(P_rand)*(12^0.5)*100;
end;


aber dann kommt eine Fehlermeldung:
"Error using *
Inner matrix dimensions must agree."

Ich finde nicht den Fehler -.-
Durch googeln habe ich den Tipp gefunden, dass man manchmal nach Klammern ".*" schreiben soll, allerdings hat dies auch nicht geholfen.

Kann mir jemand dabei helfen?

[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.03.2014, 09:27     Titel:
  Antworten mit Zitat      
Hallo,

welche Dimensionen hat GESP?
In welcher Zeile wird der Fehler gemeldet?

Zitat:
Durch googeln habe ich den Tipp gefunden, dass man manchmal nach Klammern ".*" schreiben soll, allerdings hat dies auch nicht geholfen.

Das würde ich so nicht sagen. Es gibt * (Matrixmultiplikation) und .* (komponentenweise Multiplikation), und sobald ausschließlich Vektoren oder Matrizen beteiligt, ist genau zwischen diesen zu unterscheiden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ismeralda
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 02:43     Titel:
  Antworten mit Zitat      
In welcher Zeile der Fehler auftritt, kann ich nicht sagen, da die Meldung am Schluss erscheint und keine Zeile markiert ist.
Kann ich das irgendwie herausfinden?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.03.2014, 08:47     Titel:
  Antworten mit Zitat      
Ja, obigen Code nicht über die Kommandozeile ausführen sondern über ein Skript. Das spuckt dann die Zeile aus, oder man kann es überhaupt besser debuggen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Ismeralda
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 14:10     Titel:
  Antworten mit Zitat      
Das mit dem Skript ist eine tolle Idee (das kannte ich noch gar nicht).

Den Fehler in der Zeile habe ich nun dank Ihrer Hilfe entdeckt:
Ich hatte das Semikolon am Ende der Zeile vergessen Embarassed

Nun zeigt mir das Skript keine Fehler mehr an, aber beim Ausführen kommt weiterhin die Meldung "Error using * Inner matrix dimensions must agree."
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.03.2014, 14:41     Titel:
  Antworten mit Zitat      
Na dann...:

1. Her mit der Zeile die die Fehlermeldung auslöst

2. "whos" direkt in die Zeile davor schrieben, noch enimal ausführen und Ausgabe des "whos" Kommandos in das Command Window hier posten.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Ismeralda
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 14:51     Titel:
  Antworten mit Zitat      
Erstmal vielen Dank, dass du so schnell auf meine Fragen reagierst Smile

Wie schon erwähnt, zeigt das Skript keine Fehlermeldung an (vorher wurde die Zeile ohne Semikolon am Ende markiert, jetzt ist da nichts mehr)

Ich vermute jetzt mal, dass das mu und die std ein Problem auslösen, da diese lediglich ein Wert sind statt ein Vektor.

Das Problem habe ich leider auch, wenn ich nur in ein Land investieren will (da sind alle Werte = 0)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2014, 18:41     Titel:
  Antworten mit Zitat      
Hallo,

es scheint so, als ob du dich auf die Meldungen des Code Analyzers beziehen würdest. Code Analyzer macht zwar eine Syntaxüberprüfung und Vorschläge zur Code-Verbesserung.
Du hast aber doch weiterhin die Fehlermeldung im Command Window, resultierend aus einem Laufzeitfehler?
Wenn du ein Skript hast, drücke auf den "Run" Button. Das Skript läuft dann durch oder gibt, wenn ein Fehler auftritt, die Zeile aus, in der er aufgertreten ist - und diese Information brauchen wir.
Dann solltest du dir im Workspace Browser oder wie von Andreas vorgeschlagen die Dimensionen der beteiligten Variablen ansehen - und wie gesagt: überlege dir, ob du Matrix- oder kompentenweise Multiplikation brauchst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ismeralda
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.03.2014, 01:11     Titel:
  Antworten mit Zitat      
Den Run Button habe ich im Skript gedrückt, sodass ich den Fehler mit dem Semikolon gesehen habe.
Nun zeigt mir das Skript allerdings keinen Fehler mehr an, aber es plottet auch nichts.

Mit letzterem bin ich mir momentan selbst nicht so sicher. Ich muss mich da genauer einlesen, was bspw. eine kompenentenweise Multiplikation ist, um herauszufinden, was ich brauche.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 18.03.2014, 08:43     Titel:
  Antworten mit Zitat      
Gerne antworte ich schnell, aber besonders gerne antworte ich wenn einfach meine Fragen genau beantworten werden Wink

Also der Stand scheint zu sein, dass es keinen Fehler mehr gibt. Fein. Warum kein Plot kommt in einem Beispielcode ohne Plotfunktion Wink Aber der Code wird einfach unvollständig sein. Also: Immer Code UND Daten und alles wird gut.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.