corrcoef < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 00:02 Fr 15.12.2006 | Autor: | max2006 |
Hallo, ich bin was matlab betrifft noch anfänger, und hätte deshalb 2 fragen:
zum einen:
wenn ich 2 matrizen A und B und folgenden code habe:
C=corrcoef(A,B);
was bedeutet das Ergebnis?
zum zweiten:
ich hab wieder 2 matrizen A und B
wie kann ich den Anteil der korrespondierenden Matrixwerte, die um einen bestimmten wert voneinander abweichen bestimmen?
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
> wenn ich 2 matrizen A und B und folgenden code habe:
> C=corrcoef(A,B);
Das ist ein irreführender Aufruf. Die beiden Matrizen A und B werden von Matlab als zwei Spaltenvektoren interpretiert, indem die einzelnen Spalten der Matrizen untereinandergestellt werden.
Das Ergebnis ist eine Matrix von Korrelationskoeffizienten, deren Bedeutung in der Hilfe der Kovarianzmatrix erklärt wird.
Man sieht, dass die Elemente der Hauptdiagonalen 1 sind, weil das die Korrelation der Vektoren mit sich selbst ist. Die anderen Elemente zeigen, wie stark die beiden Vektoren miteinander korreliert sind.
> wie kann ich den Anteil der korrespondierenden Matrixwerte, die um einen bestimmten wert voneinander abweichen bestimmen?
Wie genau meinst du das? Willst du eine Liste mit denjenigen Elementen, die sich in den beiden Matrizen um mehr als einen Schwellwert unterscheiden?
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:00 Fr 15.12.2006 | Autor: | max2006 |
hallo, danke erstmal für die Antwort.
ja, genauso mein ich das, also den Anteil derjenigen Elemente bestimmen, die sich in den beiden Matrizen um mehr als einen Schwellwert unterscheiden, und dann sagen wir mal, wenn der Anteil mehr als 50% ist, eine bestimmte Anweisung ausführen, wenn nicht eine andere( also if.. else..)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:21 Fr 15.12.2006 | Autor: | Martin243 |
Hallo,
ich zeige dir das mal an einem Beispiel:
a=rand(5); b=rand(5); %nur zwei 5x5-Zufallsmatrizen fürs Beispiel
schwellwert = 0.3;
matrixgroesse = size(a,1)*size(a,2);
anzahl_abweichler = length( find( abs(a-b)>schwellwert ) );
anteil_abweichler = anzahl_abweichler/matrixgroesse;
In der vierten Zeile wird die absolute Differenz aller Matrixelementpaare mit dem Schwellwert verglichen. Das Ergebnis ist wieder eine Matrix. Per find(...) werden die Indizes der die Bedingung erfüllenden Einträge als Vektor ausgegeben. Von diesem Vektor wird dann per length(...) die Länge, also die Anzahl der Einträge bestimmt.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:41 Fr 15.12.2006 | Autor: | max2006 |
hervorragend..vielen Dank!
da waren meine Ansätze mit for-Schleife etc mal wieder viel zu kompliziert gedacht
Gruß und schöne Feiertage
max
|
|
|
|