concatenate mutiple tables repetative

조회 수: 3 (최근 30일)
George
George 2013년 10월 16일
편집: Stephen23 2019년 10월 21일
Hello
I have a very large number of individual tables at my workspace, and I would like to concatenate them into a larger one by vertically combining all of them.
I have seen vertcat but i think it doesn't do so many repetition
The form of the final table is supposed to be =[A;B;...;n], does any body know of a way to automatically concatenate them.
the tables are generated into the workspace after some data manipulation of some .netCDF files, each table has been assigned a name automatically e.g. W1, W2.....Wn.
I had the tables into a structure (struct 1x1), but due to certain conditions had to individually extract them and save them assigning them with a timestamp, so now they are on the workspace as a table of 1603x561.
So all the tables are exactly the same dimension but my problem is how to automatically combine them vertically
thanks
george
p.s. the questioned is a re-post unfortunately the previous answer was not working ,thank though for the contribution in adnvance
  댓글 수: 11
dpb
dpb 2013년 10월 16일
편집: dpb 2013년 10월 16일
It was essential that the tables were ... given separate names
I don't believe that for a minute... :) That all could have been done in different manner. At least two better alternatives of named structure fields or cell arrays have been posited regardless of version. A third if you have a late release.
One alternate solution would be to go back to the beginning before you split them all up and just create the whole thing from the git-go and forget about the current W* arrays entirely.
By this I mean you could leave your existing code up to this point that works for the plots and all but instead of then trying to smush all these together that as you've discovered isn't simple just say
clear W*
to free up memory and then build the full data set from the files again. This is somewhat inefficient in that it is redundant, yes, but it lets you get from where you are to where you want to go and you can then if this is going to be a repeating future need make the modifications in your existing code without that being on a critical path to finishing this dataset.
Whatever you do, it is just going to be plain ugly and get uglier all the time to continue this route.
The only way out from here is eval or writing them all out explicitly in a try...catch...end block to handle any non-existant ones, etc. or other equally bad (or even worse) choices.
Stephen23
Stephen23 2019년 10월 21일
편집: Stephen23 2019년 10월 21일

댓글을 달려면 로그인하십시오.

답변 (2개)

Sean de Wolski
Sean de Wolski 2013년 10월 16일
Are these "tables" actual table datatypes? If they are then you can use innerjoin/outerjoin/stack etc.
If they are not, then you might want to consider using tables instead (new in R2013b).

Azzi Abdelmalek
Azzi Abdelmalek 2013년 10월 16일
편집: Azzi Abdelmalek 2013년 10월 16일
It's recommanded to generate one variable w instead of w1,w2,...
If you have no choice to do it, you can try this:
n=5
s=['w=[' sprintf('W%d;',1:n) ']']
eval(s)
  댓글 수: 1
dpb
dpb 2013년 10월 16일
There's "always" a choice... :)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by