Cumulative If Loop question?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am trying to write a function that expresses the tax rate. For example, for an income of $40,000, the first $35,350 is taxed at 15%. The remaining $4,650 is taxed at 28%. I am not quite sure how to express this. I have this code written up, but it only shows the tax rate for a specific income, but it doesn't calculate the difference between the first and the second tax rate and account for the difference in the tax rate. How do i go about fixing this?
3 comentarios
Walter Roberson
el 8 de Oct. de 2012
There is no such thing as an "if loop" ! There are "if statements" and there are "for loops" and "while loops", but "if" only executes the body once not repeatedly.
I have removed "ifloop" from the tags.
Respuesta aceptada
Sean de Wolski
el 8 de Oct. de 2012
elseif 35350 <= income & income < 85660
taxrate= .28
taxpaid= (taxrate .* income) + income
The math part of this should read something like
taxpaid = 0.15*35350+0.28*(income-35350);
%Apply 15% to the 35359 and 28% to the remainder
Now you can take all of those fixed values and turn them into vectors that could be traversed with a for-loop or fancy multiplication
taxrate = [0.15 0.28 0.31 0.396];
taxlim = [35350 etc.]
Más respuestas (1)
Matt J
el 8 de Oct. de 2012
Editada: Matt J
el 8 de Oct. de 2012
function [taxrate, taxpaid] = TaxCalc(income)
rates=[.15,.28,.31,.36,.396];
brackets=[0, 35350, 85660, 178650,388350];
bracketRevenues =[0, cumsum( diff(brackets).*rates(1:end-1))];
[~,n]=histc(income,[brackets,inf]);
taxrate = rates(n);
taxpaid = bracketRevenues(n) + (income-brackets(n))*taxrate;
0 comentarios
Ver también
Categorías
Más información sobre Get Started with MuPAD en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!