Logical Indexing: Using a 1x18 array to build a 200*18 matrix

1 view (last 30 days)
Hello,
Failmatrix is a 200x18 binary matrix. Costmatrix is a 1x18 array of cost integers.
I am trying to create a 200x1 matrix where each row is the combined total of the costmatrix values where failmatrix ==1. If that makes sense.
The following does not produce an error message, however rebuildcost stays at zero.
for i =1:length(failmatrix(:,1))
rebuildcost = costmatrix(failmatrix(i,:)==1);
rebuildcost = sum(rebuildcost);
end
Can anyone advise? Thank you.

Accepted Answer

Guillaume
Guillaume on 30 Mar 2019
Simply:
rebuildcost = sum(failmatrix .* costmatrix, 2);

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!