283
|
1 # Copyright (C) 1993 John W. Eaton |
|
2 # |
|
3 # This file is part of Octave. |
|
4 # |
|
5 # Octave is free software; you can redistribute it and/or modify it |
|
6 # under the terms of the GNU General Public License as published by the |
|
7 # Free Software Foundation; either version 2, or (at your option) any |
|
8 # later version. |
|
9 # |
|
10 # Octave is distributed in the hope that it will be useful, but WITHOUT |
|
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
13 # for more details. |
|
14 # |
|
15 # You should have received a copy of the GNU General Public License |
|
16 # along with Octave; see the file COPYING. If not, write to the Free |
|
17 # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
|
18 |
|
19 function retval = corrcoef (X, Y) |
|
20 |
|
21 # usage: corrcoef (X [, Y]) |
|
22 # |
|
23 # If each row of X and Y is an observation and each column is a variable, |
|
24 # the (i,j)-th entry of corrcoef(X, Y) is the correlation between the |
|
25 # i-th variable in X and the j-th variable in Y. |
|
26 # corrcoef(X) is corrcoef(X, X). |
|
27 |
|
28 # Written by Kurt Hornik (hornik@neuro.tuwien.ac.at) March 1993. |
|
29 # Dept of Probability Theory and Statistics TU Wien, Austria. |
|
30 |
|
31 if (nargin < 1 || nargin > 2) |
|
32 error ("usage: corrcoef (X [, Y])"); |
|
33 endif |
|
34 |
|
35 if (nargin == 2) |
|
36 C = cov (X, Y); |
|
37 S = std (X)' * std (Y); |
|
38 retval = C ./ S; |
|
39 elseif (nargin == 1) |
|
40 C = cov (X); |
|
41 s = diag (C); |
|
42 retval = C ./ sqrt (s*s'); |
|
43 endif |
|
44 |
|
45 endfunction |