Mercurial > hg > octave-nkf
annotate scripts/deprecated/corrcoef.m @ 16893:8fbc09eded8c
Complete removal of warning about assigning to ancient built-in variables.
* libinterp/parse-tree/pt-assign.cc(tree_simple_assignment,
tree_multi_assignment): Remove first_execution variable from constructor.
* libinterp/parse-tree/pt-assign.cc(rvalue1): Remove setting first_execution.
* libinterp/parse-tree/pt-assign.cc(rvalue): Remove setting first_execution.
Remove useless loop over lhs for warning about assigning to built-in vars.
* libinterp/parse-tree/pt-assign.h(tree_simple_assignment,
tree_multi_assignment): Remove first_execution variable from constructors
and from private class variable list.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 03 Jul 2013 20:04:32 -0700 |
parents | 72c96de7a403 |
children | d63878346099 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
12856
diff
changeset
|
1 ## Copyright (C) 1996-2012 John W. Eaton |
3200 | 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 | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
3200 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
3200 | 18 |
3367 | 19 ## -*- texinfo -*- |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
20 ## @deftypefn {Function File} {} corrcoef (@var{x}) |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
21 ## @deftypefnx {Function File} {} corrcoef (@var{x}, @var{y}) |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
22 ## Compute matrix of correlation coefficients. |
6754 | 23 ## |
3367 | 24 ## If each row of @var{x} and @var{y} is an observation and each column is |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
25 ## a variable, then the @w{(@var{i}, @var{j})-th} entry of |
3367 | 26 ## @code{corrcoef (@var{x}, @var{y})} is the correlation between the |
27 ## @var{i}-th variable in @var{x} and the @var{j}-th variable in @var{y}. | |
6754 | 28 ## @tex |
29 ## $$ | |
30 ## {\rm corrcoef}(x,y) = {{\rm cov}(x,y) \over {\rm std}(x) {\rm std}(y)} | |
31 ## $$ | |
32 ## @end tex | |
33 ## @ifnottex | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
9245
diff
changeset
|
34 ## |
6754 | 35 ## @example |
36 ## corrcoef(x,y) = cov(x,y)/(std(x)*std(y)) | |
37 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
9245
diff
changeset
|
38 ## |
6754 | 39 ## @end ifnottex |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
40 ## If called with one argument, compute @code{corrcoef (@var{x}, @var{x})}, |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
41 ## the correlation between the columns of @var{x}. |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
42 ## @seealso{cov} |
3367 | 43 ## @end deftypefn |
3200 | 44 |
5428 | 45 ## Author: Kurt Hornik <hornik@wu-wien.ac.at> |
3200 | 46 ## Created: March 1993 |
47 ## Adapted-By: jwe | |
48 | |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
49 function retval = corrcoef (x, y = []) |
3200 | 50 |
12856
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
51 persistent warned = false; |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
52 if (! warned) |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
53 warned = true; |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
54 warning ("Octave:deprecated-function", |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
55 "corrcoef is not equivalent to Matlab and will be removed from a future version of Octave; for similar functionality see corr"); |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
56 endif |
cad4cba03f19
Deprecate corrcoef, cor and replace with Matlab equivalent corr
Rik <octave@nomad.inbox5.com>
parents:
12656
diff
changeset
|
57 |
3200 | 58 if (nargin < 1 || nargin > 2) |
6046 | 59 print_usage (); |
3200 | 60 endif |
61 | |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
62 ## Input validation is done by cov.m. Don't repeat tests here |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
63 |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
64 ## Special case, scalar is always 100% correlated with itself |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
65 if (isscalar (x)) |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
66 if (isa (x, 'single')) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
67 retval = single (1); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
68 else |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
69 retval = 1; |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
70 endif |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
71 return; |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
72 endif |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
73 |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
74 ## No check for division by zero error, which happens only when |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
75 ## there is a constant vector and should be rare. |
3200 | 76 if (nargin == 2) |
77 c = cov (x, y); | |
78 s = std (x)' * std (y); | |
79 retval = c ./ s; | |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
80 else |
3200 | 81 c = cov (x); |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
82 s = sqrt (diag (c)); |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
83 retval = c ./ (s * s'); |
3200 | 84 endif |
85 | |
86 endfunction | |
7411 | 87 |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
88 |
7411 | 89 %!test |
90 %! x = rand (10); | |
91 %! cc1 = corrcoef (x); | |
92 %! cc2 = corrcoef (x, x); | |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
93 %! assert (size (cc1) == [10, 10] && size (cc2) == [10, 10]); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
94 %! assert (cc1, cc2, sqrt (eps)); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
95 |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
96 %!test |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
97 %! x = [1:3]'; |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
98 %! y = [3:-1:1]'; |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
99 %! assert (corrcoef (x,y), -1, 5*eps) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
100 %! assert (corrcoef (x,flipud (y)), 1, 5*eps) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
101 %! assert (corrcoef ([x, y]), [1 -1; -1 1], 5*eps) |
7411 | 102 |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
103 %!test |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
104 %! x = single ([1:3]'); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
105 %! y = single ([3:-1:1]'); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
106 %! assert (corrcoef (x,y), single (-1), 5*eps) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
107 %! assert (corrcoef (x,flipud (y)), single (1), 5*eps) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
108 %! assert (corrcoef ([x, y]), single ([1 -1; -1 1]), 5*eps) |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
109 |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
110 %!assert (corrcoef (5), 1); |
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
111 %!assert (corrcoef (single(5)), single(1)); |
7411 | 112 |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
113 %% Test input validation |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
114 %!error corrcoef (); |
7411 | 115 %!error corrcoef (1, 2, 3); |
12656
6b2f14af2360
Overhaul functions in statistics/base directory.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
116 %!error corrcoef ([1; 2], ["A", "B"]); |
11436
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
117 %!error corrcoef (ones (2,2,2)); |
e151e23f73bc
Overhaul base statistics functions and documentation of same.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
118 %!error corrcoef (ones (2,2), ones (2,2,2)); |
7411 | 119 |