Data with names through a loop in vector?

1 view (last 30 days)
Hello
I try to explain my problem with a simple code. Assuming I have dataset given as below:
z0=0; z1=500; z2=233; z3=677; z4=88; z5=8888; z6=22;
For further calculations, I would like to have all single data in one vector. I can easy write it like this:
z=[z1,z2,z3,z4,z5,z6];
For 6 numbers is this not a problem, but what if I got a set of 1000 such data?
Therefore, I would like to have a loop which creates such a vector automatically. Does anybody have an idea?
Tanks for your hints.
  2 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 2 Nov 2012
where your 1000 variables are saved?
Boris
Boris on 2 Nov 2012
With this 1000, I just wanted specify that It would be also very annoying if I have more then 6 values.
My idea is something like that:
z=[];
for i=1:6;
z=[z,z['num2st(i)]]
end
Unfortunately, the whole problem looks very easy, but I could nowhere find a solution.
Thanks for help

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 2 Nov 2012
If your data are saved in a mat file
data=load('yourfile')
for k=1:1000
out(k)=data.(sprintf('z%d',k))
end
  3 Comments
Boris
Boris on 2 Nov 2012
Great. Learned a lot. Thanks.

Sign in to comment.

More Answers (1)

Matt Fig
Matt Fig on 2 Nov 2012
Did you create this data? It is best to start over and not create such a mess in the first place..... If possible, I would go back and get the data into a proper form, such as a cell array or structure. Then further manipulations will be easier.
Other than that, please read this FAQ, and DON'T DO IT!
  3 Comments
Matt Fig
Matt Fig on 2 Nov 2012
That's o.k. What form is the data in? Is it in a .mat file? If so, see Azzi's suggestion. If not, tell us how the data is stored and we will make further suggestions.
Boris
Boris on 2 Nov 2012
I somehow understand your ideas. The thing I want to have is but somehow different.
Okey, stupidly, I write this in the editor:
z1=200
z2=330
z3=199
But I would like to have it like:
z=[200 330 199]
The only thing I can do, is just write every z value in the vector:
z=[z1 z2 z3]
But, as I wrote to Azzi, I would like to do in loop, something like:
z=[];
for i=1:3;
z=[z,z['num2st(i)]]
end
If I have a .mat file or .txt file, I am able to create an vector/matrix loop wise. But with this simple example, it just did not work.
Hopefully, I pointed out my problem more clear.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!