0

生物が発達を完了する日のベクトルと、それに対応する 1 日あたりの発達を完了する生物の数があります。生物はすべて異なる日に発達を開始しますが、異なる年齢の生物は同じ日に発達を完了することができます。

完了

日 22

23

23

23

24

完了数
124
12
345
7
231

私の問題は、同じ日に完了するすべての生物を合計する方法です。同じ完了日が連続して 2 つしかない場合は問題ありません。「numbers_completed(i) を numbers_completed(i-1)」に追加するだけです。ただし、生物の 3 つのグループが同じ日に完了した場合 (たとえば、上記の 23 日目)、2 番目と 3 番目の「日」の合計が最初の 2 日間の合計を上書きします。これを行う方法について誰か提案がありますか?

4

2 に答える 2

0

23 日目に対応する "Numbers Completed" (つまり、2 番目、3 番目、および 4 番目のエントリ) を追加すると仮定すると、find関数を使用して "Completion day" ベクトルのどこにそれらが発生するかをインデックス付けし、MATLAB に次のように指示できます。 「Numbers completed」ベクトルのエントリを追加します。

私はこれを次のように実装しました:
completion_day = [ 22 23 23 23 24]; % defining your variables
numbers_completed = [ 124 12 345 7 231]; % defining your variables
idx = find(completion_day == 23); % find the location of completion day 23
sum(numbers_completed(idx)) % return the sum of those 3 numbers

于 2013-05-01T20:08:30.693 に答える