|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。. |6 D0 G- G0 ^9 v+ O! f. P
files=dir('*.mat');
J3 L! z3 B/ X- h, ] X = [X_src',X_tar'];
, X, h' N% G- J' I6 R X = X*diag(sparse(1./sqrt(sum(X.^2))));; D; u$ O. o2 i' \) }, z A$ _; ~
[m,n] = size(X);
* s; ^: c. d3 M) |1 w1 l; E, C ns = size(X_src,1);
; U6 ^$ J, {) y O; D6 m nt = size(X_tar,1);* v; g- B2 g7 @7 }4 {
e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];
4 A' } r3 x z6 U; N M = e * e';/ g: Y1 M9 T) I0 @/ n/ ?
M = M / norm(M,'fro');. m( v' \* k8 }. |4 L9 U
H = eye(n)-1/(n)*ones(n,n);
$ a. u& c3 }' M5 A) w if strcmp(kernel_type,'primal')
. Z) a' @& H1 r. }9 A7 r% ~ [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');
5 u1 z. Z5 L# I4 C9 ?- I Z = A' * X;6 g' i3 H% P L! K% z f, h/ H
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));* f% B- r& j; M' b% x+ ?( ^
X_src_new = Z(:,1:ns)';. \) @2 K( y+ ?, f+ s1 \: W6 T
X_tar_new = Z(:,ns+1:end)';
( `0 R$ s" `( G! [7 K3 D9 t( o else8 {& ^! T: ?0 i* D6 x2 ]# |$ W
K = TCA_kernel(kernel_type,X,[],gamma);
. h( T$ j2 v, C: Q1 P6 V9 o [A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');6 a+ ]9 ~. i n
Z = A' * K;$ a' F, T3 |0 Y: \
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));6 C' I9 r5 }) M: Y
X_src_new = Z(:,1:ns)';
/ v3 ^' I0 [9 c X_tar_new = Z(:,ns+1:end)';) r0 D# m: W4 ~& H. o
end: n5 ^' R( J- X/ v
end
4 ~( h: _/ e) t, t; Q) B% k8 z8 D8 W4 h6 N8 E2 k. m, I) j
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!# E2 T5 }& z [+ a9 Z7 h* |
|
|