Info
此问题已关闭。 请重新打开它进行编辑或回答。
assigning a number to a specific struct (1 to 9) using a for loop
1 次查看(过去 30 天)
显示 更早的评论
In my research I have several participants, named AT_110001 to AT_110009. I have made structures containing data, however I want to add a field to each one with a for loop. How I did this until now:
for i = 1:9
[AT_11000(i)(:).Sheet] = deal(['Sheet', num2str(i)]);
end
end
But this does not work, how can I make this work?
1 个评论
Stephen23
2018-5-31
Dynamically accessing variable names is one way that beginners force themselves into writing slow, complex, buggy code that is hard to debug. Red this to know why:
The simpler solution is to use a non-scalar structure, which makes this task trivially easy with indexing.
回答(1 个)
Ameer Hamza
2018-5-31
This type of AT_11000(i)(:) chained indexing is not supported in MATLAB. Also, you didn't mention the fields of your struct object. I assume you want to do something like this
[AT_11000.Sheet] = deal(['Sheet', num2str(i)]);
without the for loop. The syntax is correct, but I don't know it is doing what you want because you didn't share any sample dataset.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!