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

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

Simply:
rebuildcost = sum(failmatrix .* costmatrix, 2);

1 Comment

Wow, very simple, I need to keep practicing haha
Thank you again Guillaume.

Sign in to comment.

More Answers (0)

Products

Release

R2018b

Asked:

on 30 Mar 2019

Commented:

on 30 Mar 2019

Community Treasure Hunt

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

Start Hunting!