我的問題是相當微不足道的,但我正在尋找它的矢量化形式。計算距離,給定一組座標
我的代碼是:
HubHt = 110; % Hub Height
GridWidth = 150; % Grid length along Y axis
GridHeight = 150; % Grid length along Z axis
RotorDiameter = min(GridWidth,GridHeight); % Turbine Diameter
Ny = 31;
Nz = 45;
%% GRID DEFINITION
dy = GridWidth/(Ny-1);
dz = GridHeight/(Nz-1);
if isequal(mod(Ny,2),0)
iky = [(-Ny/2:-1) (1:Ny/2)];
else
iky = -floor(Ny/2):ceil(Ny/2-1);
end
if isequal(mod(Nz,2),0)
ikz = [(-Nz/2:-1) (1:Nz/2)];
else
ikz = -floor(Nz/2):ceil(Nz/2-1);
end
[Y Z] = ndgrid(iky*dy,ikz*dz + HubHt);
編輯
目前我使用這個解決方案,它具有合理的表演:
coord(:,1) = reshape(Y,[numel(Y),1]);
coord(:,2) = reshape(Z,[numel(Z),1]);
dist_y = bsxfun(@minus,coord(:,1),coord(:,1)');
dist_z = bsxfun(@minus,coord(:,2),coord(:,2)');
dist = sqrt(dist_y.^2 + dist_z.^2);
@Dan:我剛剛編輯了我的問題。老實說,在以前版本的關於我如何定義距離的問題上有一個明顯的缺陷。 – fpe 2013-02-19 08:13:29
@TalDarom是正確的,pdist2是正確的。它聲稱找到兩個矩陣的每個元素 – Dan 2013-02-19 08:46:42
'pdist2'之間的成對距離絕對不是答案:我不知道答案:我不知道不想計算兩個矩陣之間的距離,而是計算網格上點之間的距離,其中'Y'和'Z'代表網格上每個點的笛卡爾座標。 – fpe 2013-02-19 09:04:58