Data with names through a loop in vector?

2 ビュー (過去 30 日間)
Boris
Boris 2012 年 11 月 2 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 11 月 2 日
where your 1000 variables are saved?
Boris
Boris 2012 年 11 月 2 日
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

サインインしてコメントする。

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 11 月 2 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 11 月 2 日
Boris, try the above code
Boris
Boris 2012 年 11 月 2 日
Great. Learned a lot. Thanks.

サインインしてコメントする。

その他の回答 (1 件)

Matt Fig
Matt Fig 2012 年 11 月 2 日
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 件のコメント
Matt Fig
Matt Fig 2012 年 11 月 2 日
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 2012 年 11 月 2 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeWhos についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by