Vectorization or Looping?
1 回表示 (過去 30 日間)
古いコメントを表示
I'm trying to accomplish a task through vectorization rather than reverting to my old habit of looping. I have a table, T, imported from a text file. The table is comprised of a list of items with a variable number of subtotals associated with each item. Is it possible to return the sum of the subtotals for each item without looping?
For example, with T below:
Var1 Var2
Item 1 NaN
Subtotal 1 1.4
Subtotal 2 0.7
Subtotal 3 5.4
Item2 NaN
Subtotal 1 1.9
Item 3 NaN
Subtotal 1 2.4
Subtotal 2 3.6
Desired output:
v1 v2
Item 1 7.5
Item 2 1.9
Item 3 6.0
v1 = find(contains(T.Var1,'Item'));
v2 = ?
Thanks in advance to anyone who can help!
2 件のコメント
Stephen23
2022 年 11 月 27 日
編集済み: Stephen23
2022 年 11 月 27 日
The data arrangement make this challenging. A much better arrangement of the table data would be like this:
item = [1;1;1;2;3;3];
subt = [1.4;0.7;5.4;1.9;2.4;3.6];
tbl = table(item,subt)
Then your task is simple:
out = groupsummary(tbl,"item",@sum)
採用された回答
Image Analyst
2022 年 11 月 27 日
You forgot to attach your table. No one is going to type all that in when you could just give it to us in a .mat or text file.
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!