为了建立桁架的整体刚度矩阵,需要将刚度矩阵叠加到全局刚度矩阵上。我首先创建了一个零矩阵
K=zeros(6,6); %Empty global stiffness matrix然后,我想要覆盖一个4x4矩阵(Ke)到正确的位置。例如:
Ke(1,1)->K(1,1)
Ke(1,2)->K(1,2)
Ke(1,3)->K(1,5)
Ke(1,4)->K(1,6)
Ke(2,1)->K(2,1)
Ke(2,2)->K(2,2)
Ke(2,3)->K(2,5)
Ke(2,4)->K(2,6)
etc.我找到了一段可以工作的代码,但恐怕我不明白为什么。下面是:
sctr = [2*n1-1 2*n1 2*n2-1 2*n2];
K(sctr,sctr) = K(sctr,sctr) + Ke;按照我上面的示例n1,n2应该是n1=1和n2=3。n1和n2对应于元素的开始节点和结束节点。当然,这是在一个循环内,它将计算每个单元的刚度矩阵,并将其覆盖到全局矩阵。
发布于 2017-03-13 16:23:35
对于给定的n1和n2值,sctr是
sctr = [1 2 5 6];这与要更改的行和列索引相对应。K(sctr,sctr)选择K的4x4子矩阵。Matlab为sctr中每个可能的元素组合选择一个元素。因此,对于每个选定的行(即在sctr中有其索引的行),将选择在sctr中具有索引的列。有关详细信息,请参阅矩阵索引。
https://stackoverflow.com/questions/42768276
复制相似问题