下面是我的代码,我想计算我的“inp”和矩阵中每一行之间的汉明距离,并将这些汉明距离保存在不同的变量中。:
a=[1 1 1 1;1 0 1 1;1 1 0 0; 1 0 0 1]
inp=[0 1 0 1]
for i = 1:4
D=a(i,:);
('dist%d',i)=pdist2(inp,D,'hamming')
fprintf('\n')
i=i+1;
end
此代码无效,我知道('dist%d',i)是错误的部分。但是,我无法解决它。我想要做的是获得如下结果:dist1 =,dist2 =,dist3 =,dist4 =。这就是为什么我用“i”绑定它,因为它是我的循环。任何想法如何解决。
答案 0 :(得分:0)
您似乎对打印与变量分配感到困惑。通常:评估,分配给变量,然后打印。
dist = zeros(4,1)
来完成的。dist(i)
(数组的第i个元素)中。i=i+1
,for循环会为您增加。
a=[1 1 1 1;1 0 1 1;1 1 0 0; 1 0 0 1];
inp=[0 1 0 1];
dist = zeros(4,1);
for i = 1:4
D=a(i,:);
dist(i)=pdist2(inp,D,'hamming');
fprintf('dist%d = %f \n', i, dist(i))
end
请注意,如果打印输出是唯一目标,则不必将结果存储在dist中。你可以做到
fprintf('dist%d = %f \n', i, pdist2(inp,D,'hamming'))
然后,不引入数组dist
。