for loop issue not all answer printing out

3 次查看(过去 30 天)
This is my assignment: Write an M-file to compute A. Test it with P =$100 , 000 and an interest rate of 3.3 % ( r = 0.033 ). Use a for loop to compute results for n= 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , and 10. Then display the results in a table with headings and columns for n and A.
I've written all the code and everything works, but my table only shows n=10 and the corresponding answer. I really don't understand for loops enough to know what to fix in mine
function A = InterestPayment(P,r,n)
P = 100000;
r = 0.033;
for n=1:10
A = P*((r*(1+r)^n)/((1+r)^n-1));
end
A = P*((r*(1+r)^n)/((1+r)^n-1));
T= table (n',A', 'VariableNames',{'n','A'})

采纳的回答

Doddy Kastanya
Doddy Kastanya 2021-1-11
Hi Anastasia,
The problem is you did not store the results as a vector; therefore, when you printed out the table, only the last value of A is shown. The updated version below should work. Another thing that you might want to do is to define the calling variables from outside the function so you can use it for other values as well.
P = 100000;
r = 0.033;
n=10;
InterestPayment(P,r,n);
function A = InterestPayment(P,r,n)
for i=1:n
A(i) = P*((r*(1+r)^i)/((1+r)^i-1));
end
T= table ([1:n]',A', 'VariableNames',{'n','A'})
end

更多回答(1 个)

David Hill
David Hill 2021-1-11
function T = InterestPayment(P,r)
for n=1:10
A(n) = P*((r*(1+r)^n)/((1+r)^n-1));
end
T= table ((1:10)',A', 'VariableNames',{'n','A'});

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by