|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
" O8 b6 ]- p5 C* J/ Z3 N files=dir('*.mat');& \+ P7 U, c0 P2 g" z- T# \
X = [X_src',X_tar'];' u8 ?& G {+ `
X = X*diag(sparse(1./sqrt(sum(X.^2))));+ q( j3 f% a# v) G7 c6 q
[m,n] = size(X);
- ], y) O! S4 t ns = size(X_src,1);
1 O4 G1 Q4 |& M: f nt = size(X_tar,1);
$ q/ _ Y8 q2 h( U5 R: C, A' d, r0 } e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];
4 S1 S+ f' I# W7 g: G8 ^ M = e * e';
" h3 K- n5 m5 n: ]5 b/ h& Q M = M / norm(M,'fro');7 h" c& K) K) z9 Z9 i
H = eye(n)-1/(n)*ones(n,n);7 v& H8 `' m9 p3 K- U' u0 a, e
if strcmp(kernel_type,'primal')
1 J. C; u' ~! v9 T' D! _' M6 y [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');, r1 {/ [! W z0 w9 R
Z = A' * X;( }0 Z6 A. [; o `- |$ c, a
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));5 z! R, P5 Y: ?
X_src_new = Z(:,1:ns)';4 U7 U( l6 P" ^) C- ^) B: |" P
X_tar_new = Z(:,ns+1:end)';1 ?3 G( P" k X. n" J3 B
else1 a5 F8 K: o0 J1 h: J. d2 x
K = TCA_kernel(kernel_type,X,[],gamma);
" r3 I7 _( a2 @* ]/ [ [A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');
5 q2 {3 Z/ A7 o Z = A' * K;
5 B. M6 J& J/ g4 c! {, I% t' D, l Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));5 L, Q, G6 y" N* v" b @7 p
X_src_new = Z(:,1:ns)';
5 Y1 R: L$ ~9 H, Y8 h. O$ ? X_tar_new = Z(:,ns+1:end)';
* ?3 p: d4 H W/ @8 `1 G n end: b9 @ R- y8 u- ]+ A1 L' @
end! @; K+ r2 ^. O3 ~; }
0 D& {$ |- k: ]/ n/ X" @8 {% u5 j中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!( }$ a" L" K2 G t- y
|
|