Matlab FOR Loop help!
显示 更早的评论
_ I'm trying to get this function to work. But i keep getting an error. I am trying to determine the amount in the savings account for next 18 years, which is represented by x(k) in an array. Problem is that only the first value for the first month shows up in the array._ * _ * _
clc,clear
% Variable declaration
% x will be used to store the value of the new balance
% a will be used to store the value of the old balance
% i will be used to store the value of the interest rate
% c will be used to store the value of the user's contribution
% Variable initialization
a = input('Enter a value for the initial balance: ');
i = input('Enter a value for the interest rate: ');
c = input('Enter a value that you will contribute: ');
% Calculation
month = 1:12:216;
x=zeros(length(month));
for k=1:length(month);
x(k) = a + i(k) + c
end
10 个评论
Sara
2014-7-29
is "i" an array? it doesn't look so in the input, but then you use i(k). In addition, x=zeros(length(month)); should be x=zeros(length(month),1); probably. Can you provide the inputs you are using?
Dylan Flores
2014-7-29
编辑:Dylan Flores
2014-7-29
Sara
2014-7-29
All the number in the expression of x are constant so you get just one answer. Which eqn are you trying to implement?
Dylan Flores
2014-7-29
Sara
2014-7-29
Then I think you got the wrong eqn. How does this sound:
x(1) = a;
for k = 2:numel(month)
x(k) = (x(k-1)+c)*(1+i); % this assuming you make the contrib every month and that the interest rate is applied monthly
end
Dylan Flores
2014-7-29
Sara
2014-7-29
What question? Can you post the text of the question? Your eqn makes no sense, interest rate multiply capital not sum it.
Dylan Flores
2014-7-29
Sara
2014-7-29
Old balance is x(k-1) not a and I think interest means x(k-1)*i. The loop becomes:
x(1) = a;
for k = 2:numel(month)
x(k) = x(k-1)+ x(k-1)*i + c; %or x(k-1)*(i+1) + c;
end
If the interest is %, divide i by 100.
Dylan Flores
2014-7-29
回答(1 个)
Maybe try this:
month = 1:12:216;
x=zeros(1,length(month)); % otherwise you have a 18*18 array
x(1) = a;
for k=2:length(month);
x(k) = x(k-1) + (i/100)*x(k-1) + c; % add the amount present during the previous month. Oh and I divided your interest rate by 100.
end
类别
在 帮助中心 和 File Exchange 中查找有关 MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
