Trouble With Table And Graph (Real World Application of Loops and Branches)
1 次查看(过去 30 天)
显示 更早的评论
I have to use MATLAB to write a code, employing at least one loop to determine the actual difference in salary between men and women, the Earnings Ratio, and Pay Gap each year between 2018 and 2028. The output should be a neatly formatted table in the command window with the heading shown below. Also using the fprintf function display in the command window the total difference in pay between a man and a woman over the 20 year period. I tried to create a table but it says my rows aren't even. I may have messed up above that. This is what I have right now.
clc
M=66097;
W=63554;
a=1:20;
M_vec= zeros(1,20);
W_vec= zeros(1,20);
ER=0;
PG=0;
ER_vec= zeros(1,20);
PG_vec= zeros(1,20);
format bank
for final = a
M=1.05*M;
M_vec(final)= M;
W=1.05*W;
W_vec(final)= W;
ER=M_vec/W_vec;
ER_vec(final)=ER;
PG_vec=(M_vec(final)-W_vec(final))/M_vec(final);
end
Year=(2018:1:2037);
AverageMensSalary = M_vec(final);
AverageWomensSalary = W_vec(final);
DifferenceinAnnualSalary= M_vec(final)-W_vec(final);
EarningsRatio= ER_vec(final);
PayGap= PG_vec;
table(Year',M_vec(final)',W_vec(final)', M_vec(final)'-W_vec(final)',ER_vec(final)', PG_vec','VariableNames',{Year, Average Male Salary', Average Womens Salary, Difference in Annual Salary, Earnings Ratio, Pay Gap});
2 个评论
Walter Roberson
2019-11-4
After your for final loop, final will be a scalar so M_vec(final) will be a scalar. That has a different number of rows than does Year' which has 20 rows.
I think the table is supposed to include all of the M_vec values.
回答(1 个)
Roshni Garnayak
2019-11-7
There are couple of things to note here:
- M_vec(final)is of size 1x1 and contains only the last element of the vector M_vec. While creating the table you need to take the entire array, M_vec.
- The variable names have to be enclosed in single quotes. Moreover, spaces are not allowed in variable names.
Make the following changes in the last line of your code:
table(Year',M_vec',W_vec', M_vec'-W_vec',ER_vec', PG_vec','VariableNames',{'Year', 'AverageMaleSalary', 'AverageWomensSalary', 'DifferenceInAnnualSalary', 'EarningsRatio', 'PayGap'});
1 个评论
Steven Lord
2019-11-7
As of release R2019b, table and timetable variable names are allowed to contain spaces. See the Release Notes. If you are using an older release Roshni Garnayak is correct that you will need to remove the spaces from your table variable names.
Note that this applies to the names of variables in table and timetable arrays only. The names of "standalone" variables must satisfy the requirements stated in the documentation for the isvarname function.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!