Calling sequential variable names in a for loop?
19 次查看(过去 30 天)
显示 更早的评论
I have a set of variable names numbered sequentially. For example one set is
AllChDeltaPreStim1,2,3,4,5 (so there are 5 different variables with the prefix followed by n=1-5). I want to do a hilbert transform on all of them but I'm sure I don't have to write it out 5 times, right? I know how to write a for loop for each column/row in a variable but not this. I am definitely a beginner programmer so please help and forgive if stupid question! Thanks! Kim
0 个评论
采纳的回答
Image Analyst
2013-12-14
Yes you do need to call the code separately. However you could make it easier and make the code into a function so that you just need to call the function 5 times and all the heavy lifting is done in that function rather than in your main program.
results1 = YourHilbertFunction(AllChDeltaPreStim1);
results2 = YourHilbertFunction(AllChDeltaPreStim2);
results3 = YourHilbertFunction(AllChDeltaPreStim3);
results4 = YourHilbertFunction(AllChDeltaPreStim4);
results5 = YourHilbertFunction(AllChDeltaPreStim5);
It's not really many more lines, if any, than a for loop. If you don't want to do that, you can make AllChDeltaPreStim and arry.
See the FAQ on this topic: http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F
更多回答(1 个)
Kevin Stanley-Adams
2013-12-14
编辑:Kevin Stanley-Adams
2013-12-14
Your best option is probably to store the contents of AllChDeltaPreStimX in an array rather than seperate variables. Then you can access the data in each iteration by using something like:
for i=0:5
%code
AllChDeltaPreStim(i)
%code
end
If your separate variables are matrices, I'd create a structure array and store them in that. I'm no Matlab expert though, so this might not be the optimum solution.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!