错误"赋值具有比非单例下标更多的非单例rhs维度"

时间:2015-08-21 11:15:14

标签: matlab

m =得到错误"分配比非单身下标更多的非单身rhs维度"在以下代码中:

S=size(C);
S1=size(k);


p=S(1)+S1(1)-1;
q=S(2)+S1(2)-1;

T=uint8(zeros(S(1)+2*(S1(1)-1),S(2)+2*(S1(2)-1)));

T(S1(1):S1(1)+S(1)-1,S1(2):S1(2)+S(2)-1)=C;


for i=1:p
for j=1:q
mat=k.*C(i:i+S1(1)-1,j:j+S1(2)-1);

    D =sum(mat(:));

end
end

请帮忙,错误就行了:  的 T(S1(1):S1(1)+ S(1)-1,S1(2):S1(2)+ S(2)-1)= C;

如果需要更多详细信息,请询问。

由于

1 个答案:

答案 0 :(得分:0)

SS1都是[1 x 2]数组(即,如果C和k是2D矩阵)。 T(S1(1):S1(1)+S(1)-1,S1(2):S1(2)+S(2)-1)=C;根据SS1的实际值创建一些矩阵。此数组显然与C的大小不同,因此您无法将此数组分配给C

旁注:为什么在指定T的行周围有星号? Matlab并不认为它是有效的代码,如果它只是一个亮点作为我们的视觉辅助,读者,最好删除它,以便我们可以实际运行代码。