|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近刚刚学习matlab,在做一个关于迁移学习tca的代码。
: i" m7 A# T, O' c7 {3 e+ ^ files=dir('*.mat');4 U' ?" {" i9 Q" w6 A3 Z
X = [X_src',X_tar'];4 ^: V7 ~9 z, U. g3 y, @
X = X*diag(sparse(1./sqrt(sum(X.^2))));
& j7 T; g- s) c: T3 E7 @) v) U* I [m,n] = size(X);2 [( V# S$ E! ^' X( W
ns = size(X_src,1);7 [, r* a' a: B9 m. Q
nt = size(X_tar,1);2 u4 d. A4 A' n& Y
e = [1/ns*ones(ns,1);-1/nt*ones(nt,1)];8 J' e3 t8 {% d1 _" B9 Z5 a
M = e * e';
7 K' @/ ]' I3 B M = M / norm(M,'fro');2 l0 g! L B( L) |6 o1 b3 r3 G6 F
H = eye(n)-1/(n)*ones(n,n);3 G! C" v" C4 q8 c% z- c4 n8 b
if strcmp(kernel_type,'primal')8 \: |3 S+ @. C2 H9 j& l+ E
[A,~] = eigs(X*M*X'+lambda*eye(m),X*H*X',dim,'SM');& {" ]& }1 V, S. l0 o! G# i t0 q( e
Z = A' * X;7 Z' l) c: t3 _: {" _' v
Z = Z * diag(sparse(1./sqrt(sum(Z.^2))));$ o( H" P2 _7 [9 W V: u$ J
X_src_new = Z(:,1:ns)';
% ]7 K% l, `: j" I! w X_tar_new = Z(:,ns+1:end)';, S6 {+ ]% H$ h& e0 [3 q
else
$ M1 q) p+ A4 F" q K = TCA_kernel(kernel_type,X,[],gamma);/ g4 J3 L7 ]$ g$ q( x. r% e
[A,~] = eigs(K*M*K'+lambda*eye(n),K*H*K',dim,'SM');
T1 g* C L% Y! u Z = A' * K;6 D q# L: {) Z/ }- f; r
Z = Z*diag(sparse(1./sqrt(sum(Z.^2))));0 g" @8 R0 G u: c6 _
X_src_new = Z(:,1:ns)';: S! e3 [; X# M9 X! @+ S; _
X_tar_new = Z(:,ns+1:end)';
9 G1 Y1 J1 f& T! O end
A& x) @8 w( Q2 w4 i9 cend
/ U# t% h% x0 o6 K. `2 w% ?! T* a* T# N' Y" S: F) {9 o
中的X = X*diag(sparse(1./sqrt(sum(X.^2))));这一行代码报错,说未定义与 'struct' 类型的输入参数相对应的函数 'power'。这里的X是一个1x2的结构体,是不是结构体代入power函数的格式是错的?请教大神,非常感谢!" h; o& ^$ b. `
|
|