## Vary Variable name in a for loop

### Philippe (view profile)

on 5 Dec 2012

Hello Matlab community,

I am a beginner in Matlab and I use it normally for data treatment.

The software I'm using ouputs my acquired data in multiples Traces when I import it in Matlab in a similar way than showed at the bottom:

Trace_1_1_1_1

Trace_1_1_2_1

Trace_1_1_3_1

Trace_1_2_1_1

...

I would like to create a new matrix where I would have 3 columns that would go like this:

Trace_1_1_1_1 Trace_1_1_2_1 Trace_1_1_3_1

Here is my current for loop I would like to used to accomplish this task since I have 58 different Traces.

for i = 1:58;

for j = 1:3;

a_i = zeros(size(Trace_1_i_j_1,1),3);

a_i(:,j) = Trace_1_i_j_1(:,2);

end end

Matlab don't have the ability to use the i and j values and implement them in the Trace variable. Do you have any suggestion to overcome this issue?

I don't know if I made myself clear.

Thanks for all the help!

## Products

No products are associated with this question.

on 5 Dec 2012
Edited by Babak

### Babak (view profile)

on 5 Dec 2012

you can create a name with this:

` myvarname = cell(3,1);`
``` for j=1:3
myvarname{j} = sprintf('Trace_1_1_%u_1',j)
end```

Then you can use these names as follows to store values in workspace

``` clear assignin;
for j=1:3
assignin('base',myvarname{j},2*j+5);  % for example
end```

To get the values from workspace do this:

``` value = zeros(3,1);
for j=1:3
value(j) = evalin('base',myvarname{j})
end```

Philippe

### Philippe (view profile)

on 5 Dec 2012

I don't understand the 2nd for loop. Matlab stores 3 times '0'.

Philippe

### Philippe (view profile)

on 5 Dec 2012

Each Trace_1_i_j_1 represents thousands of data points and not a single value...

Babak

### Babak (view profile)

on 5 Dec 2012

I am sorry, I made a mistake in the format of the assignin() function. I fixed the solution I'd written above (the second for loop).

Please clear assignin variable if you have created it in MATLAB's base workspace by mistake... you just need to do this once.. and use the assignin(.,.,.) the way I'm indicating above, or loop at MATLAB's documentation on assignin

` doc assignin`

### Walter Roberson (view profile)

on 5 Dec 2012

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi