how to process many sequential data using for loop

3 次查看(过去 30 天)
I have 40 sequential data in my Workspace, and I would like to process each of all the 40 using a for loop.
the data is named like this...
trail
trail1
trial2
trial3
....
trial39
this is my code, but not working...
% Select each of the 40 trials
for e = 1:40
data = trial'e';
end;
so i need to process 'data' in each loop
thank you.
  1 个评论
Adam
Adam 2014-9-1
Does your data have to be named like that or do you have a choice? Does it comes from some external source with those names?
This is one of those regular questions that people come across (and I tried to do it myself once) the answer to which is pretty much always that you really don't want to organise your data in that way.
If you really want to then lookup 'eval' in the help, but ideally you should store your data differently, either as an n-dimensional matrix or as a single cell array of 40 elements.

请先登录,再进行评论。

采纳的回答

Iain
Iain 2014-9-1
Ugh. Don't name variables like that, its a bad idea. But, the function you need is "eval"
current_trial = eval(['trial' num2str(e)]);
  2 个评论
wasiu
wasiu 2014-9-1
Thank you very much,it work. I will follow your advice next time, but i have a problem with the first trial,
if i use
for e=0:39
it gives error.... 'trial0' not found,
and if I use
for e=1:40 , it will skip the first 'trail'
please any advice, thank you.
wasiu
wasiu 2014-9-1
i have solved the problem, thank you very much.
Thank you all

请先登录,再进行评论。

更多回答(1 个)

Julia
Julia 2014-9-1
Hi,
does this help you?
>> s=['trial','1']
s =
trial1
  1 个评论
wasiu
wasiu 2014-9-1
i need a for loop
example ...
for e = 1:40
data=['trial','e'];
% so i can get trail1 to trial40 as 'data', each trial in each loop, until I process of the 40
end;
thanks

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by