[求救] 迴圈遞減

看板MATLAB作者 (去吧我的愛)時間7年前 (2017/12/05 01:02), 7年前編輯推噓1(103)
留言4則, 2人參與, 7年前最新討論串1/1
小弟初學菜鳥 第一次發問 想寫一個簡單的(S,s)存貨系統 i為天數 S為初始存貨數量 dem為需求 re為剩餘 只要剩餘小於s 就要補充S-s個貨品 目前想法如下 function re=inven(S,s,dem) Q=S-s; for i=1:20 re(i)=S-dem*i; if (re(i)<s) re(i)=re(i)+Q; end end 但是出來的結果為 >> inven(50,15,5) ans = 45 40 35 30 25 20 15 45 40 35 30 25 20 15 10 5 0 -5 -10 -15 結果只會補貨一次 請問該怎麼改才能讓他重 複補貨而不會只補一次呢? 感謝高手指導 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.48.154 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1512406953.A.1D3.html

12/05 02:08, 7年前 , 1F
一直都有再補貨 只是你第九個出來結果是-的 會讓你以
12/05 02:08, 1F

12/05 02:08, 7年前 , 2F
為程式有照你的想法走
12/05 02:08, 2F

12/05 02:10, 7年前 , 3F
re(9) = 50 - 9*5 = 5, re(9) = 5 + 35 = 40
12/05 02:10, 3F
不好意思我不太瞭解您的意思 第一次剩餘小於15時的確有補貨 但是第二次小於15時時就 沒有補 導致變成-的 我想改的就是這裡 要讓re(15)=15+35-5=45 ※ 編輯: newtypehuman (115.82.48.154), 12/05/2017 02:32:25 喔喔我知道我的盲點在哪裡了 我想要的是每天都會減少5個需求 第二天的剩餘為45-5=40 第三天為40-5=35 ...所以是迴圈裡面寫錯了嗎? 那我應該怎麼改呢? ※ 編輯: newtypehuman (115.82.48.154), 12/05/2017 02:40:10

12/05 12:53, 7年前 , 4F
re(i+1) = re(i) + Q
12/05 12:53, 4F
文章代碼(AID): #1Q9N-f7J (MATLAB)
文章代碼(AID): #1Q9N-f7J (MATLAB)