【发布时间】:2017-05-01 09:29:09
【问题描述】:
我正在尝试计算结构数据类型的距离。
距离法是:
function ssd=distances(x, c)
m=size(x,1);
ssd = zeros(m, k);
k=size(c,1);
for i= 1:k
z = bsxfun(@minus,x, c(i,:));
ssd(:,i) = sqrt(z(:).^2,2);
end
然后我有c,这是一个由以下公式产生的随机数:
for i=1:20
pop(i).Position=unifrnd(2,2,4);
pop(i).dist=distances(x= data,pop(i).Position=c);
end
x = 数据为 100x2。
问题是当我调用 distance 方法时它不接受传递的参数 pop(i).position。
【问题讨论】:
-
哪个参数?此外,您使用的变量
k在我能看到的任何地方都没有定义。请编辑您的问题以澄清。 -
为什么你的函数调用中有
x =和=c?distances(data, pop(i).Position)呢? -
@Suever 是的,只是为了解释 x 是数据,c 是 pop(i).position
-
您的实际错误信息是什么?
-
@Suever 错误是:Error using sqrt Too many input arguments.