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.

 Akzeptierte Antwort

Guillaume
Guillaume am 30 Mär. 2019
Simply:
rebuildcost = sum(failmatrix .* costmatrix, 2);

1 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2018b

Gefragt:

am 30 Mär. 2019

Kommentiert:

am 30 Mär. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by