Azzera filtri
Azzera filtri

How to combine workspaces using the workspace name

35 visualizzazioni (ultimi 30 giorni)
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?
  1 Commento
per isakson
per isakson il 9 Mag 2013
Modificato: per isakson il 9 Mag 2013
In Matlab "workspace" is something different. Your, A1,A2,... are variables.
You overwrite the variable, a, 199 times.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 9 Mag 2013

Più risposte (1)

Matt J
Matt J il 9 Mag 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{:});

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by