Dealing with strings and numbers in a for loop.
22 ビュー (過去 30 日間)
古いコメントを表示
Hi guys,
I have
April2003 = 55;
April2004 = 279;
April2005 = 311;
.
.
.
.
April20020 = 119
How can I run a for loop that sums up all these data for me? I tried this, but it doesn't work -
for i = 2003:2020
APRIL_total = sum('April',num2str(i))
end
Can anyone please help me?
1 件のコメント
Stephen23
2022 年 3 月 22 日
編集済み: Stephen23
2022 年 3 月 22 日
"I have..." badly designed data that forces me into writing slow, complex, inefficient code when I try to access it in a loop.
The cause is forcing meta-data into the variable names.
"Can anyone please help me?"
You can help you, by not forcing meta-data into variable names. Use arrays, just like MATLAB is designed for, to store both your data (number values) and your meta-data (dates).
DT = datetime([2003;2003;2004;2005;2020;2020],[1;4;4;4;1;4],1);
V = [23;55;279;311;64;119];
TT = timetable(DT,V)
Z = groupsummary(TT,'DT','monthofyear','sum')
採用された回答
Steven Lord
2022 年 3 月 22 日
Having variables with numbered names like this is a code smell. See this Answers post for an explanation of why they smell and alternatives you should use instead.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!