Dann wiederhole ich es nochmal:
CORRCOEF gibt eine Matrix zurück. Und R(i,j) ist ein Skalar.
U.a. deshalb wird mit nicht klar, was Du berechnen möchtest. Kannst Du die entsprechenden mathematischen Formeln posten?
Ja genau corrcoef gibt eine Matrix zurück. Das möchte ich auch ... eine Matrix (72,36) mit den Korrelationskoeffizienten, die sich bei der Korrelation zwischen der Untervektoren
ergeben sollen. Also ich habe das Gefühl, dass das was ich möchte nicht funktioniert ...
Und wenn Du immer noch nicht verstehst, was ich machen möchte, dann weiß ich nicht, was oder wie ich es sonst noch erklären sollte. Und welche Formel soll ich posten, die die man unter corrcoef in MATLAB help findet???
Nein. CORRCOEF bereits gibt eine Matrix zurück, wenn Du zwei Vektoren als Input verwendest. Du bekommst also für jeden der 36x72 Punkte eine eigene Matrix! "Der Korrelationskoeffizient" sollte also besser "die Korrelationskoeffizientenmatrix" heißen.
Ich suche nicht nach der Formel, die in CORRCOEF angewendet wird - die kenne ich bereits. Die Frage ist, wie die Formel lautet, mit der Du die Zahlen für die von Dir gewünschten Outputs definierst. Du erklärst Dein Ziel immer wieder mit Worten, aber dies liefert noch keine eindeutige Definition, und folglich läßt sich das auch nicht korrekt programmieren.
Wie genau ist die Zahl definiert, die in R(i,j) steht?
CORRCOEF ist offensichtlich nicht die gesuchte Funktion, da sie ja eine Matrix liefert.
Die zweite Fehlermeldung stammt übrigens daher, dass die erste FOR-Schleife über "i" von 1 bis 72 läuft. Sie darf aber nur bis 36 laufen. Also einfach "i" und "j" in den Schleifen vertauschen.
Ok, diese corrcoef-Funktion ist also nicht geignet für mein Problem. Meine Version 2007 lässt aber leider kaum andere Möglichkeiten zu. Ich habe gesehen, dass MATLAB 2011 mehere Möglichkeiten bietet, um die Korrelation von zwei Vektoren zu berechnen. Ich denke, der Korrelationskoeffizient nach Pearson wäre hier am besten geeignet, aber den gibt es in MATLAB 2007 nicht. D.h. ich müsste die Formel ins Programm einbauen?
[code]??? Error using ==> cov at 37
Inputs must be 2-D.
Die Fehlermeldung ist eindeutig.
"NO(i,j,:)" erzeugt ein [1 x 1 x N] Array. Beutze RESHAPE um einen [1 x N] Vektor (was ja eine spezielle 2D [M x N] Matrix ist) zu erzeugen.
Danke für den reshape-Hinweis, das bedeutet, ich möchte jetzt jede einzelne der 2592 Zeilen beider Gruppen miteinander korrelieren über die Pearson Formel.
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.