为了创建桁架的全局刚度矩阵,我需要将刚度矩阵覆盖到全局矩阵。 我首先创建了一个零矩阵
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对应于元素的开始和结束节点。当然,这将在一个循环内部,该循环将计算每个元素的刚度矩阵并将其覆盖到全局矩阵。
答案 0 :(得分:1)
对于n1
和n2
的给定值,sctr
是
sctr = [1 2 5 6];
这与您要更改的行和列索引相对应。 K(sctr,sctr)
选择K
的4x4子矩阵。 Matlab为sctr
中每个元素的可能组合选择一个元素。因此,对于每个选定的行(即其索引在sctr
中),选择其索引为sctr
的列。有关详细信息,请参阅matrix indexing。