?? disteusq.m
字號:
function d=disteusq(x,y,mode,w)
% DISTEUSQ 蠟努府叼救, 磊鉸 蠟努府叼救 趣籃 付竅唱疇厚膠 芭府甫 拌魂茄促. D=(X,Y,MODE,W)
%
% 澇仿 牢磊:
% X,Y 厚背瞪 氦磐籠欽. 阿 凱撈 單撈磐 氦磐肺 登絹 樂促.
% X客 Y綽 鞍籃 薦狼 青闌 啊柳促.
%
% MODE 可記 葷親 急琶 鞏磊凱:
% 'x' 葛電 X客 Y狼 凱俊輯 傈眉 芭府 青紡 拌魂.
% 'd' 包訪等 X客 Y狼 凱埃狼 芭府父 拌魂.
% 父距 X客 Y啊 鞍籃 凱狼 薦甫 啊瘤擱 叼棄飄肺 'd'撈絆 弊犯瘤 臼欄擱 'x'.
% 's' 蠟努府叼救 芭府 搬苞狼 磊鉸辟闌 秒茄促.
%
% W 可記 啊吝摹 青紡: 拌魂等 芭府綽 (x-y)*W*(x-y)'
% 父距 W啊 氦磐撈擱 青紡 diag(W)啊 葷儈等促.
%
% 免仿 牢磊:
% D 父距 MODE='d'撈擱 D綽 X客 Y焊促 累籃 鞍籃 薦狼 凱闌 啊柳 青 氦磐撈促.
% 父開 MODE='x'撈擱 D綽 X客 鞍籃 薦狼 凱苞 Y'客 鞍籃 薦狼 青闌 啊柳 青紡撈促.
%
% VOICEBOX 傍俺家膠 薦瀝
% VOICEBOX home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
%
[nx,p]=size(x); ny=size(y,1);
if nargin<3 | isempty(mode) mode='0'; end
if any(mode=='d') | (mode~='x' & nx==ny)
nx=min(nx,ny);
z=x(1:nx,:)-y(1:nx,:);
if nargin<4
d=sum(z.*conj(z),2);
elseif min(size(w))==1
wv=w(:).';
d=sum(z.*wv(ones(size(z,1),1),:).*conj(z),2);
else
d=sum(z*w.*conj(z),2);
end
else
if p>1
if nargin<4
z=permute(x(:,:,ones(1,ny)),[1 3 2])-permute(y(:,:,ones(1,nx)),[3 1 2]);
d=sum(z.*conj(z),3);
else
nxy=nx*ny;
z=reshape(permute(x(:,:,ones(1,ny)),[1 3 2])-permute(y(:,:,ones(1,nx)),[3 1 2]),nxy,p);
if min(size(w))==1
wv=w(:).';
d=reshape(sum(z.*wv(ones(nxy,1),:).*conj(z),2),nx,ny);
else
d=reshape(sum(z*w.*conj(z),2),nx,ny);
end
end
else
z=x(:,ones(1,ny))-y(:,ones(1,nx)).';
if nargin<4
d=z.*conj(z);
else
d=w*z.*conj(z);
end
end
end
if any(mode=='s')
d=sqrt(d);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -