查看单个帖子
旧 2008-12-18, 12:06   #2
remnant
普通会员
 
注册日期: 2008-04-12
年龄: 46
帖子: 67
声望力: 19
remnant 正向着好的方向发展
默认 回复: matlab code 问题

引用:
作者: kampww 查看帖子
我有一段matlab code如下
clear;
X=[1 2 3 4; 5 6 7 8 ;9 10 11 12];
N=[1 2 3 4; 5 6 7 8 ;9 10 11 12];
N=kron(N,ones(size(X,1),1));
w =[1 1 1 1;1 1 1 1;1 1...
不懂Kronecker张量,所以,把每个已知量看做blackbox yy一下:
clear;
clc;

X=[1 2 3 4; 5 6 7 8 ;9 10 11 12];
W =[1 1 1 1;1 1 1 1;1 1 1 1];
N=[1 2 3 4; 5 6 7 8 ;9 10 11 12];
N=kron(N,ones(size(X,1),1));

[ X_row, tmp_col ] = size( X ); %% tmp_col临时量,没用
[ N_row, tmp_col ] = size( N );

result_num = N_row / X_row; %% 确定要做几次结果出来

for i = 1 : result_num
%% X大小是一定的,因此这里要做的其实就是正确的分离出大小合适的N来
%% X, N列总是一致的,因此只需要在行上做文章,
%% 第一次,需要取出N的1->X_row行,
%% 第二次,取出N的X_row+1 -> 2*X_row
%% 第三次,取出N的2*X_row+1 -> 3*X_row
%% .....一次类推,得到下面:
N_sub = N( (i-1)*X_row+1 : i*X_row, : );
B = sqrt( W .* ( N_sub - X ) .^ 2 );
[ Val(i), Indx(i) ] = min( sum( B, 2 ) );
end
remnant 当前离线   回复时引用此帖