Asked by Lauren
on 9 May 2013

I have individual workspaces with names A1,A2,A3...A200. The workspaces all have two columns but varying number of rows. I have been trying:

for k=1:1:200 data=eval(sprintf('A%d',k); a=[data]; end

However, this just gives me a workspace with the values from workspace A200. What is the most efficient way to combine all the workspaces into one with 2 columns?

*No products are associated with this question.*

Answer by Matt J
on 9 May 2013

Similar to what Walter said, it was a mistake to create A1...A200. It would have been much more efficient to have these matrices as elements of a cell array A{1}...A{200} instead. Then you would simply do

a=vertcat(A{:});

To undo the damage, you can do

data=cell(1,200); for k=1:1:200 data{k}=eval(sprintf('A%d',k); end

a=vertcat(data{:});

Opportunities for recent engineering grads.

## 1 Comment

## per isakson (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/75130#comment_148039

In Matlab "workspace" is something different. Your, A1,A2,... are variables.

You overwrite the variable, a, 199 times.