我正在解决一个涉及光束偏转的问题(这不太有趣:P)
我需要将整体刚度矩阵简化为结构刚度矩阵,方法是从原始矩阵中删除任何包含0的行和列。
因此,如果我有一个像这样的矩阵(我们称其为K):
0 0 5 3 0 0
0 0 7 8 0 0
7 1 2 6 2 1
3 8 6 9 5 3
0 0 4 5 0 0
0 0 1 8 0 0
简化后的矩阵(我们称其为S)就是
2 6
6 9
到目前为止,这是我写的将全局矩阵K简化为刚度矩阵S的内容
S = K;
for i = 1:length(S(:,1))
for j = 1:length(S(1,:))
if S(i,j) == 0
S(i,:) = [];
S(:,j) = [];
break;
end
end
end
但是,在包含“ if”语句的行上,我得到“索引超过矩阵维”,并且我不确定删除所有行和列的最佳方法是否正确。感谢任何反馈!
简单:
S = K(all(K,2), all(K,1));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句