create n k matrix in matlab
Show older comments
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!
Answers (2)
Walter Roberson
on 15 Sep 2015
0 votes
Use a cell array or a multidimensional array
2 Comments
SAKSHI SINHA
on 15 Sep 2015
Walter Roberson
on 15 Sep 2015
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);
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!