【发布时间】:2014-06-05 12:19:20
【问题描述】:
我正在使用 matlab 进行一个项目,但我的这部分代码有问题。
在最后的for循环中,我无法创建一个数组来存储'distanza'的所有值.....作为输出,程序会覆盖找到的最后一个值,或者它说数组只有一个价值。 我需要这些价值观,然后做媒体。
C(f2)= numel (featPairs);
C1(f1)= numel (featPairs);
[bestval,bestidx] = max (C);
[bestval1,bestidx1] = max (C1);
a = importdata('coordData.mat');
x = interp1( a(:,1), a(:,2), 1:frames2);
y = interp1( a(:,1), a(:,3), 1:frames2);
b = importdata('coordData2.mat');
x1 = interp1( b(:,1), b(:,2), 1:frames1);
y1 = interp1( b(:,1), b(:,3), 1:frames1);
distanza=[];
dist= [];
if max(C)==bestval
disp ([x(bestidx),y(bestidx)]);
disp ([x1(bestidx1),y1(bestidx1) ]);
for i=1:10
distanza = sqrt ((x(bestidx)-x1(bestidx1))^2 + (y(bestidx)-y1(bestidx1))^2);
dist = [dist; distanza(i)];
end
save ('distance_sample.mat','dist');
disp (['la distanza tra le due posizioni è: ', num2str(distanza)]);
提前致谢!
【问题讨论】:
-
在
sqrt行中,您将distanza计算为单个数字。在下一行中,您尝试访问distanza(i),这会导致i大于1 的错误。也许只需将第二行更改为dist = [dist; distanza]; -
我已经尝试过了,但结果它给了我一个数组,最后一个值被写入了 10 次!我不明白出了什么问题...