|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
. }& M8 v j* ?" s5 s9 p7 _ files=dir('*.mat');
( {: U# L( O* t) Z X = [X_src',X_tar'];, N; t7 N: t$ ~, _$ l. O7 \! p
X = X*diag(sparse(1./sqrt(sum(X.^2))));
8 C5 z4 F) m8 j6 D2 y [m,n] = size(X); ^/ U' B3 V4 R! A4 |
ns = size(X_src,1);' c' r& p4 [1 t; e* S! ]) o: `
nt = size(X_tar,1);
5 ^# K ^; _( M- P e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];
; ~ o: E7 y+ b! P M = e * e';: \. e j2 K; S1 ]8 J
M = M / norm(M,'fro');
. a, |% G" [2 R5 e/ z% N6 p. ]. y H = eye(n)-1/(n)*ones(n,n);
6 q8 ]6 g8 r9 i. I if strcmp(kernel_type,'primal')
/ l! E) x, j" y# j ~7 M- `9 p [A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');
1 ]* O0 C/ Z3 I Z = A' * X;: Y# s/ K6 k/ t/ U, V
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));
+ K# M @( R' o9 C4 q X_src_new = Z(:,1:ns)';
$ k& o$ W5 E, O X_tar_new = Z(:,ns+1:end)';
4 X- i$ f4 w) W else
2 n9 K o0 S0 h K = TCA_kernel(kernel_type,X,[],gamma);% Z! \5 ~3 G% p, k
[A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');
* M$ i/ H" B4 H6 V, U Z = A' * K;1 G+ K- }- ^- ^% o0 K. K2 d: Z
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));; c6 c& Q5 \. P! `4 k; H
X_src_new = Z(:,1:ns)';
& s; M6 d$ K& U: w X_tar_new = Z(:,ns+1:end)';
5 o4 R3 z ]' e% M4 q end
9 n X U; B6 x$ K- K& J: Y t" eend
4 [5 b! R4 g Q( v- o5 c+ S- u+ E9 a- G2 I
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!
T N% S9 W3 W9 K# } |
|