我在 MATLAB 中编写了一段代码,它基本上将矩阵“Ke”(8x8,只是常量)中的值分配给最初用零填充的矩阵“KG”。应为其分配值的行数和列数由数组 nEN 给出,该数组在另一个循环中有所不同,但始终是 4 个数字的数组。
KG=[];
for t=1:Nw
for i=1:Nh
eN=Am(t:t+1,i:i+1)
nEN=reshape(eN',1,[])
for i1=1:4
for i2=1:4
KG((2*(nEN(i1))-1),(2*(nEN(i2))-1))=Ke(((2*i1)-1),((2*i2)-1));
KG((2*(nEN(i1))-1),(2*(nEN(i2))))=Ke((2*i1-1),(2*i2));
KG((2*(nEN(i1))),(2*(nEN(i2))-1))=Ke((2*i1),(2*i2-1));
KG((2*(nEN(i1))),(2*(nEN(i2))))=Ke((2*i1),(2*i2));
end
end
end
end
KG
问题是有时 nEN 可以具有与前一次迭代中获得的值相同的值,因此我的循环重写了“KG”中已经存在的值,但我希望将它们加在一起。我怎样才能做到这一点??谢谢。