create n k matrix in matlab
显示 更早的评论
i need to make n stiffness matrix...
k1=E1*A1/L1* [1 -1; -1 1];
K2=E2*A2/L2* [1 -1; -1 1];
K3...
K4...
..
.
.
KN=EN*A2/LN[1 -1; -1 1]
I TRIED THIS:
for i=1:1:NE
K(i)=(E(i)*A(i)/L(i)) .* [1 -1; -1 1]
end
where i have defined matrix E A and L but i am not getting it. help me please!
回答(2 个)
Walter Roberson
2015-9-15
0 个投票
Use a cell array or a multidimensional array
2 个评论
SAKSHI SINHA
2015-9-15
Walter Roberson
2015-9-15
for i=1:1:NE
K{i}=(E{i}*A{i}/L{i}) .* [1 -1; -1 1];
end
Are you certain, by the way, that you want matrix division (E{i}*A{i}) * inv(L{i}) ? If you want element-by-element division use ./ instead of /
for i=1:1:NE
K{i}=(E{i}*A{i}./L{i}) .* [1 -1; -1 1];
end
If E, A, L are matrices and the ith stiffness matrix is just the scalar s = E(i)*A(i)/L(i)) multiplied with matrix [1 -1; -1 1], you can generate your N stiffness matrices as
S = E.*A./L;
T = [1 -1; -1 1];
K = reshape(T(:)*S(:)', 2, 2, numel(S));
with the ith stiffness matrix given by
Ki = K(:,:,i);
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!