输入循环矩阵尺寸必须同意

时间:2013-05-21 23:05:03

标签: arrays matlab matrix

我有这个错误:

    Error using  - Matrix dimensions must agree.
    Error in DistMatrix3 (line 23)
       d=sqrt((I-L').^2+(J-M').^2+(K-N').^2);

    Error in coba (line 20)
        d=DistMatrix3(cobat,c);   % calculate the distance

这是我的代码:


我认为错误不是因为DistMatrix3本身。它是由c输入,循环输入引起的。我想这些行应该修复,因为它不包含j个变量:

for i=1:k
    f=find(g==i);
    if f                % calculate the new centroid 
        c(i,:)=mean(cobat(find(g==i),:),1);
    end
end

我一直在坚持如何解决它。你能告诉我怎么办才能解决这个问题?非常感谢您的帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

代码:

[maxRow, maxCol]=size(cobat);
for i=1:k
    for j=1:maxCol
        c=input('Enter a number: '); % sequential initialization
    end
end

似乎不太可能是正确的。

这应该是这样的:

[maxRow, maxCol]=size(cobat);
for i=1:k
    for j=1:maxCol
        c(i,j)=input('Enter a number: '); % sequential initialization
    end
end

我也想知道用户输入k是否应该总是等于maxRow。