|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
. {+ Z' l5 b1 z/ b0 X% M! V files=dir('*.mat');
6 `2 _" }0 I3 r) g X = [X_src',X_tar'];( C) I& ]2 r' N$ v2 ]9 y4 n. T
X = X*diag(sparse(1./sqrt(sum(X.^2))));1 s5 K: v; b7 _/ R- c! P
[m,n] = size(X);
& x1 j% P$ ?* `7 o9 s ns = size(X_src,1);5 d7 |' f+ p$ A0 K% [ w/ Q
nt = size(X_tar,1);0 O% b* S% z9 C" U6 P
e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];
1 b0 N- Z3 a U( z' J- Z& t M = e * e';
" t( K2 @1 M: L/ q* F9 p8 E+ N M = M / norm(M,'fro');- a( b" J0 r" j) e9 h) @8 G7 Q9 r7 N
H = eye(n)-1/(n)*ones(n,n);2 `/ m* W( |* b/ b
if strcmp(kernel_type,'primal')
( W" h0 M: O4 W' L$ N0 W0 [/ `1 X [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');) _2 @# ?6 }8 Z* f
Z = A' * X;
8 l8 d+ W8 L6 @' {- R- v5 y Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));9 H% r0 Z( T- m& C+ N, I
X_src_new = Z(:,1:ns)';
5 p. ]. M; f! E5 T X_tar_new = Z(:,ns+1:end)';7 _3 Z" f7 H' }8 k
else
+ m- Y h2 J( ^) [! A6 T4 k) h K = TCA_kernel(kernel_type,X,[],gamma);
/ x1 {7 a; a5 J' p6 Y4 R* i [A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');, `' w" c0 P) G9 x
Z = A' * K;' d6 R! r* t6 F9 N
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));
& @9 M$ Q. e* ]0 B X_src_new = Z(:,1:ns)';
, |$ j, J$ F6 p6 B, i X_tar_new = Z(:,ns+1:end)';/ R, y3 U8 }8 B N9 {! R
end0 s2 |- \3 z1 N3 T5 P( S# s0 B
end
0 @/ G Q4 E' c, V5 \( k& v6 Q+ d/ u9 @1 q. m) l
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!
}1 p% J+ \& a/ | |
|