|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。. j0 \' O5 J B8 v D
files=dir('*.mat');
' D* y0 z2 H; o X = [X_src',X_tar'];0 p) a, j! }# \7 }
X = X*diag(sparse(1./sqrt(sum(X.^2))));9 O) J* x! R9 m
[m,n] = size(X);
! s% t( x( N5 X0 ?% I ns = size(X_src,1); ?, A S2 Y2 F
nt = size(X_tar,1);
7 c4 {3 S1 _+ H# z: P6 R' @ e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];
! V9 `8 z4 U+ g4 T o M = e * e';
8 v$ @/ t& d5 x% c, f- ^" |' t* t M = M / norm(M,'fro');
7 H, { p- e& Q `; _ H = eye(n)-1/(n)*ones(n,n);
! {2 [8 R# ]; Z8 N4 R: x if strcmp(kernel_type,'primal')
5 B8 r/ y% W" x' k# g8 D$ N [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');
* L# Q: A( l7 G" n+ O" U Z = A' * X;5 ]+ j' M0 n9 p% Y& y+ K5 Q+ j
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));; r7 l2 Y3 s3 L
X_src_new = Z(:,1:ns)';7 A9 G$ Q$ z; |8 `" U
X_tar_new = Z(:,ns+1:end)';( p- X' a! o( [3 v8 x
else4 `$ k6 h+ r( W& W- G
K = TCA_kernel(kernel_type,X,[],gamma);
2 o7 T* a& J8 A# j* }: A& d [A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');
1 s+ y: F7 `1 O" x Z = A' * K;/ z ?# L3 {. {5 {( T
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));
* `& I) s! [: F4 G X_src_new = Z(:,1:ns)';
+ H) z. v N1 v3 k X_tar_new = Z(:,ns+1:end)';
- q6 h/ o; U& w, a9 X2 ], W end
) [3 X- B& E/ _end P2 T S* B I: ^! |3 T
9 \" c2 j, o: X4 ~
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!' X% ^5 G% r! y8 {& y& b
|
|