Vectorization or Looping?
22 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dave O
am 27 Nov. 2022
Kommentiert: Dave O
am 27 Nov. 2022
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 Kommentare
Stephen23
am 27 Nov. 2022
Bearbeitet: Stephen23
am 27 Nov. 2022
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)
Akzeptierte Antwort
Image Analyst
am 27 Nov. 2022
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:
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!