フィルターのクリア

Index out of bounds

1 回表示 (過去 30 日間)
David
David 2014 年 5 月 17 日
コメント済み: David 2014 年 5 月 18 日
clc clear close
amount = input('What is the total resistance?: ');
fprintf('The total resistance is %0.f, so you will have in the series: \n', amount);
bill=[82*10^6,68*10^6,56*10^6,47*10^6,39*10^6,33*10^6,27*10^6,22*10^6,18*10^6,15*10^6,12*10^6,10*10^6,82*10^5,68*10^5,56*10^5,47*10^5,39*10^5,33*10^5,27*10^5,22*10^5,18*10^5,15*10^5,12*10^5,10*10^5,82*10^4,68*10^4,56*10^4,47*10^4,39*10^4,33*10^4,27*10^4,22*10^4,18*10^4,15*10^4,12*10^4,10*10^4,82*10^3,68*10^3,56*10^3,47*10^3,39*10^3,33*10^3,27*10^3,22*10^3,18*10^3,15*10^3,12*10^3,10*10^3,82*10^2,68*10^2,56*10^2,47*10^2,39*10^2,33*10^2,27*10^2,22*10^2,18*10^2,15*10^2,12*10^2,10*10^2,82*10,68*10,56*10,47*10,39*10,33*10,27*10,22*10,18*10,15*10,12*10,10*10,82,68,56,47,39,33,27,22,18,15,12,10];
r=amount;
tnb=0;
i=1;
while r~=0
nb(i)=floor(r./bill(i));
tnb=tnb + nb(i);
r=rem(r ,bill(i));
if nb(i) >= 1
fprintf('%.0f of resistors %.0f \n' ,nb(i) ,bill(i))
end
i=i+1;
end
fprintf(' %.0f resistors in total \n' ,tnb)
How do i make it so it stops at the ideal combination? eg, if i type in 18 it will return 18 with 1 resistor in total, but if i type 20, i want it to stop at 18 as well but the code seems to want to keep going but it becomes out of bounds, anyway of stopping this? :D

採用された回答

Image Analyst
Image Analyst 2014 年 5 月 17 日
Try this:
while r~=0 && i <= length(bill)
and also see this.
  1 件のコメント
David
David 2014 年 5 月 18 日
YOU SIR, ARE A GOD :D

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by