|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
8 L- M, H# G |+ M% ?* x* W" z files=dir('*.mat');
$ x) m% `9 L1 x% G, [5 F X = [X_src',X_tar'];4 j: U' }# A `# U0 Q
X = X*diag(sparse(1./sqrt(sum(X.^2)))); I) m% f5 U3 _6 r+ r& Q6 _8 t
[m,n] = size(X);. j7 \; ]8 u8 e( H& N1 g% _
ns = size(X_src,1);$ i4 [& k7 ]3 W% ]
nt = size(X_tar,1);0 ?& P; b' b, h( }0 L
e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];# d; _, Z/ S% a0 z" O. j0 @
M = e * e';
1 Y( [5 t0 Q6 r" F" q M = M / norm(M,'fro');
7 E" t& E# p6 Q H = eye(n)-1/(n)*ones(n,n); J- h% d/ ?+ z, B; c
if strcmp(kernel_type,'primal')
- B3 j. X8 D! Z, W [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');5 c3 s, ~( N- E$ C
Z = A' * X;
5 ~8 A! h/ J1 e9 `. s Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));
# {% i+ V" E0 T4 t) L$ H2 } X_src_new = Z(:,1:ns)';
4 W8 x" b6 \2 e" q X_tar_new = Z(:,ns+1:end)';
2 A2 e, H( p- U/ L else
, I; }* t3 ?7 z$ ?. ? K = TCA_kernel(kernel_type,X,[],gamma);9 H) A1 @ L A E& w
[A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');5 d. C5 O, y* s/ A
Z = A' * K;5 R7 O# i: `( O
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));+ d' U; v! g* M+ X9 M
X_src_new = Z(:,1:ns)';
) s8 S& ~2 V7 S! z$ K m0 `# M X_tar_new = Z(:,ns+1:end)';
4 K5 N! t& w$ B end1 t+ h* L) k1 l5 t" e6 F
end, D; L3 q4 X# L4 F
- ^0 ^! w _4 i* p
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!, u/ S3 s4 q5 B8 L
|
|