how to change variable name in for loop

I am trying to do a problem for structural analysis, i got stuck in this part trying to make a for loop give me different variables, here's the example. Thanks in advance!!
for i=1:nel
kl =[J(1,i) 0 0 -J(1,i) 0 0
0 J(3,i) J(2,i) 0 -J(3,i) J(2,i)
0 J(2,i) J(4,i) 0 -J(2,i) J(5,i)
-J(1,i) 0 0 J(1,i) 0 0
0 -J(3,i) -J(2,i) 0 J(3,i) -J(2,i)
0 J(2,i) J(5,i) 0 -J(2,i) J(4,i)]
end
I need a new "kl" each iteration, can anybody help me out, it's my first month using matlab.

1 Comment

Jan
Jan on 11 Oct 2014
Edited: Jan on 11 Oct 2014
What is the problem with the shown code? You need a new kl in each itereation and you get a new one. So what is your question? What is the connection to the title "change varaible name"?

Sign in to comment.

 Accepted Answer

A bold guess: Do you want to store the different matrices in a variable?
kl = zeros(6, 6, nel)
for i = 1:nel
kl(:,:,i) =[J(1,i) 0 0 -J(1,i) 0 0; ...
0 J(3,i) J(2,i) 0 -J(3,i) J(2,i); ...
0 J(2,i) J(4,i) 0 -J(2,i) J(5,i); ...
-J(1,i) 0 0 J(1,i) 0 0; ...
0 -J(3,i) -J(2,i) 0 J(3,i) -J(2,i); ...
0 J(2,i) J(5,i) 0 -J(2,i) J(4,i)];
end
Or in a cell array:
kl = cell(1, nel);
for i = 1:nel
kl{i} = ...

3 Comments

Alejandro's comment moved here:
Thanks a lot, the problem was the one you boldly guessed. My only remaining question would be if there's a way of naming the matrices kl1, kl2, kl3, kl4, kln instead of kl(:,:,1) etc?
@Alejandro: absolutely avoid this programming practice. Keep the data in one place and if you need the meta info associated withe the name of the slice, then use structures or tables.
@Alejandro: Hiding an index in the name of a variable is a bad programming style.

Sign in to comment.

More Answers (0)

Categories

Find more on Historical Contests in Help Center and File Exchange

Asked:

on 11 Oct 2014

Commented:

Jan
on 12 Oct 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!