필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
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

답변 (2개)

Stephen
Stephen 2017년 10월 5일
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 2017년 10월 12일
S = 12;
t = 20:50;
your_salary = S*t;
your_salary(t > 40) = S*(40+1.5*(t-40));

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by