Cumulative If Loop question?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2012-10-8
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.
采纳的回答
Sean de Wolski
2012-10-8
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.]
更多回答(1 个)
Matt J
2012-10-8
编辑:Matt J
2012-10-8
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Get Started with MuPAD 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!