[英]How generate multiple random distribution from a vector of mean and st.dev in octave/matlab?
[英]How to generate this vector in Octave/ MATLAB?
我有一個大小為n
的矢量centroids
和一個大小為p
的矢量points
(這兩者實際上都是Vx3
矩陣,其中V
是點或質心的數量)。
對於來自points
任何給定點pt
,我想生成另一個距離矢量: pt
與每個質心的距離。
有什么功能編程風格的方式可以做到這一點? 可能是這樣的(Python風格):
distances = [ norm(pt - c) for c in centroids ]
如果沒有,對我來說最好的方法是什么? 我使用的是Octave,但我也添加了matlab標簽,因為這些語言需要相似的語言(至少從我所看到的)。
所以,你有3D質心和三維點,並希望任何點數PT的points
來確定所有質心的距離。
arrayfun(@(x) norm(x),pt(ones(v,1),:)-centroids)
我的解決方案比g24l長。我不確定哪種MATLAB版本的arrayfun
適用於此,因此這應該適用於較舊的版本:
pt = rand(1,3);
centroids = rand(2,3);
pt = repmat(pt, [size(centroids,1) 1]); % duplicate your point to vectorize
dists = sum((pt - centroids).^2,2)
您所要做的就是將其包裝在一個函數中,該函數只包含一個pt
和一個centroids
矩陣,您將擁有自己的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.