|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
& o( P! M+ P5 }3 }* F files=dir('*.mat');& o$ D. p5 L& J/ P) y
X = [X_src',X_tar'];
8 q+ M3 b: @. l9 o# ~ X = X*diag(sparse(1./sqrt(sum(X.^2))));: j+ ?/ v9 K5 J& ]* b& r$ q% ]# \! Z
[m,n] = size(X);7 z" y, [. o! l
ns = size(X_src,1);
/ x* m) Z+ j0 @ u) A nt = size(X_tar,1);9 u$ s1 [' v! g: n/ i; U
e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];3 A- R/ J/ ^" X4 \5 a
M = e * e';& i$ q: Z* R0 F" o, ^9 T( ~' V9 @
M = M / norm(M,'fro');
$ ^ |. S, R1 \" W H = eye(n)-1/(n)*ones(n,n);
+ p7 A+ L+ b4 }- B7 F; ^ G* i, B if strcmp(kernel_type,'primal')& k9 S. p4 k0 _* h: O# g4 U
[A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');3 j# _% q6 @9 d+ o
Z = A' * X;6 K) G) o1 w( e) \7 Z7 P
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));
; |+ {! Y8 Y2 q1 L& q X_src_new = Z(:,1:ns)';- g) o7 ?* l7 K* ]# I
X_tar_new = Z(:,ns+1:end)';
T1 m6 o$ E1 |2 {( U; C* P else% W# o% ]" N5 Y8 H+ ]% D
K = TCA_kernel(kernel_type,X,[],gamma);" E4 q# D" H) \5 d; Z. T3 P
[A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');8 Y% i6 n4 q! O7 P1 h3 w" A
Z = A' * K;
- J' G+ H0 o; g* A6 \# B Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));3 R* e% O. y* F6 R, ^
X_src_new = Z(:,1:ns)';) Z* s" C5 W1 t4 y" g9 u1 L
X_tar_new = Z(:,ns+1:end)';
3 ?4 Z, g. u: f4 N7 x0 M end
$ _( E* b* L- Jend/ H! e" d, A' Q+ _ F P
' i* W8 ^/ d; P1 j
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!
3 b5 {: ^# d. ?$ L! ` |
|