[英]Add values to specific points in MATLAB
為了創建桁架的整體剛度矩陣,我需要將剛度矩陣疊加到整體框架上。 我首先創建一個零矩陣
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對應於元素的開始和結束節點。 當然,這將在循環內部,該循環將計算每個元素的剛度矩陣並將其覆蓋到全局矩陣。
對於給定的n1
和n2
值, sctr
為
sctr = [1 2 5 6];
這與您要更改的行和列索引相對應。 K(sctr,sctr)
選擇K
的4x4子矩陣。 Matlab為sctr
元素的每種可能組合選擇一個元素。 因此,對於每個選定的行(即,其索引在sctr
),將選擇其索引在sctr
中的列。 有關更多信息,請參見矩陣索引 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.