繁体   English   中英

将值添加到MATLAB中的特定点

[英]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;

按照我上面的示例n1n2应该为n1=1n2=3 n1和n2对应于元素的开始和结束节点。 当然,这将在循环内部,该循环将计算每个元素的刚度矩阵并将其覆盖到全局矩阵。

对于给定的n1n2值, sctr

sctr = [1 2 5 6];

这与您要更改的行和列索引相对应。 K(sctr,sctr)选择K的4x4子矩阵。 Matlab为sctr元素的每种可能组合选择一个元素。 因此,对于每个选定的行(即,其索引在sctr ),将选择其索引在sctr中的列。 有关更多信息,请参见矩阵索引

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM