?? dualcov.html
字號:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>dualcov.m</title><link rel="stylesheet" type="text/css" href="../../m-syntax.css"></head><body><code><span class=defun_kw>function</span> <span class=defun_out>Z</span>=<span class=defun_name>dualcov</span>(<span class=defun_in>varargin</span>)<br><span class=h1>% DUALCOV Dual representation of covariance matrix.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% Z=dualcov(num_data)</span><br><span class=help>% Z=dualcov(labels, y)</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function computes a matrix Z [num_data x num_data] which allows </span><br><span class=help>% to express the sample covariance matrix of data sample X [dim x num_data] </span><br><span class=help>% in terms of dot products. </span><br><span class=help>%</span><br><span class=help>% Z = dualcov(num_data) computes a matrix Z [num_data x num_data] such that </span><br><span class=help>% cov(X',1) = X*Z*X'.</span><br><span class=help>%</span><br><span class=help>% m = dualcov(labels,y) computes a matrix Z [length(y) x length(y)] such that</span><br><span class=help>% cov(X(:,find(labels==y))',1) = X*Z*X',</span><br><span class=help>%</span><br><span class=help>% where labels [1 x num_data] is a vector of data labels and y [1x1] </span><br><span class=help>% is a label od class which covariance metrix is to be computed.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Example:</span></span><br><span class=help>% Unlabeled data:</span><br><span class=help>% data = load('riply_trn');</span><br><span class=help>% ca = cov( data.X', 1)</span><br><span class=help>% cb = data.X*dualcov(size(data.X,2))*data.X'</span><br><span class=help>%</span><br><span class=help>% Labeled data:</span><br><span class=help>% data = load('riply_trn');</span><br><span class=help>% ca1 = cov( data.X(:,find(data.y==1))',1)</span><br><span class=help>% cb1 = data.X*dualcov(data.y,1)*data.X'</span><br><span class=help>% ca2 = cov( data.X(:,find(data.y==2))',1)</span><br><span class=help>% cb2 = data.X*dualcov(data.y,2)*data.X'</span><br><span class=help>%</span><br><span class=help>% See also </span><br><span class=help>% DUALMEAN.</span><br><span class=help>%</span><br><hr><span class=help1>% <span class=help1_field>About:</span> Statistical Pattern Recognition Toolbox</span><br><span class=help1>% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac</span><br><span class=help1>% <a href="http://www.cvut.cz">Czech Technical University Prague</a></span><br><span class=help1>% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a></span><br><span class=help1>% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a></span><br><br><span class=help1>% <span class=help1_field>Modifications:</span></span><br><span class=help1>% 16-may-2004, VF</span><br><span class=help1>% 14-may-2004, VF</span><br><span class=help1>% 22-Jan-2003, VF</span><br><span class=help1>% 22-May-2001, V. Franc, created</span><br><br><hr><span class=keyword>if</span> <span class=stack>nargin</span> == 2,<br> <span class=comment>% labeled data</span><br> <br> labels = <span class=stack>varargin</span>{1};<br> y = <span class=stack>varargin</span>{2};<br> <br> num_data = length(labels); <br> inx_y=find( labels == y);<br> n = length(inx_y);<br> <br> J=ones(n,1)/n; <br> Zy = ( eye(n,n)/n - J*J' ); <br><br> Z = zeros(num_data,num_data);<br> Z(inx_y,inx_y) = Zy;<br><span class=keyword>else</span><br> <span class=comment>% unlabeled data</span><br> <br> n = <span class=stack>varargin</span>{1};<br> J=ones(n,1)/n; <br> Z = ( eye(n,n)/n - J*J' ); <br><span class=keyword>end</span><br><br><span class=jump>return</span>;<br><span class=comment>% EOF</span><br></code>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -