I want to create a table from this for loop for each different value the overtimesalary and salary

2 vues (au cours des 30 derniers jours)
S= 12;
t = (20:50);
Salary = S*t;
Overtimesalary = S*40+((S*1.5)*(t-40));
for t = (20:50)
if t > 40
Overtimesalary = S*40+((S*1.5)*(t-40));
else
salary = S*t;
end
end

Réponses (2)

Stephen
Stephen le 5 Oct 2017
One problem you're probably having is that you are overwriting the Overtimesalary variable each loop. I would restructure the code a bit since you've got that same equation in two places, using an anonymous function for calculating pay. I would also eliminate the selection between functions, instead implanting a single function for pay that works whether overtime is worked or not.
Here's what I would do:
S= 12;
PayFunc = @(t,S) S*t + min(((S*0.5)*(t-40)),0);
payTable = zeros(50-19,2);
for t = 20:50
rowPtr = t-19;
payTable(rowPtr ,1) = t;
payTable(rowPtr ,2) = PayFunc(t,S)
end

Andrei Bobrov
Andrei Bobrov le 12 Oct 2017
S = 12;
t = 20:50;
your_salary = S*t;
your_salary(t > 40) = S*(40+1.5*(t-40));

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by