MATLAB Fundamentals course problem creating a local function

37 次查看(过去 30 天)
Hi , I was trying to complete the MATLAB fundamentals course and I encountered a probel in chapter 15 .1 last part "Create and call a local function" . I followed the isntructions and my answer was just like the solution provided , I even tried copy pasting the solution cell-wise but the answer cannot pass the last test, i.e., "Is pp calculated from the function paretoperc?" . Someone please help me with it. I skipped it for now and completed the rest of the course and now my progress is stuck at 99%.
  3 个评论
Ajit Singh
Ajit Singh 2022-3-13
Thankyou, I am attaching the screenchot the the page, help me figure out how to pass the last test.

请先登录,再进行评论。

回答(3 个)

Renee Coetsee
Renee Coetsee 2022-3-15
编辑:Renee Coetsee 2022-3-15
There is an issue with this task. You can resolve the issue by adding clear in the very first line of the script.
More information can be found here:
  13 个评论
Renee Coetsee
Renee Coetsee 2023-6-15
Hi Ibrahim, thanks for sharing your code.
You created the function correctly but you also need to use the function by adding this line of code above the function:
pp = paretoperc(medals);
If you click "See Solution" you can see the whole script. I hope this helps!

请先登录,再进行评论。


Image Analyst
Image Analyst 2022-3-13
编辑:Image Analyst 2022-3-13
Maybe it really wants "medals" (like it said) for the input argument rather than "x" like you put.
Attach your code if you want us to run it. (I don't want to type all that in.)
  3 个评论
Ajit Singh
Ajit Singh 2022-3-13
load medalcounts bronzes silvers golds medals
histogram(medals)
xlabel("Medal count")
ylabel("Number of teams")
paretoperc(medals);
function pp = paretoperc(medals)
% Cumulative contribution of data points (in order)
cc = cumsum(sort(medals(:),"descend")); % (:) to ensure column vector
cc = 100*cc/cc(end); % Normalize to percentage
% Corresponding percentiles (column vector to match cc)
pct = (1:numel(medals))';
pct = 100*pct/numel(pct); % Normalize to percentage
% Find the number of data values needed so that
% P% of the data is in (100-P)% of the values
idx = find(cc >= (100-pct),1,"first");
pp = cc(idx);
end
Ajit Singh
Ajit Singh 2022-3-13
编辑:Ajit Singh 2022-3-13
the contents of medal were the follwoing , (I don't know how to save that file to my pc so I copied it from the workspace)
113
88
58
65
71
46
36
33
37
40
24
21
20
15
20
20
14
11
10
8
9
17
9
13
11
8
7
9
7
6
5
5
8
12
13
4
4
3
4
4
3
2
2
19
7
4
4
7
6
4
4
3
7
6
5
4
4
2
2
2
2
2
1
1
1
5
7
5
4
3
4
3
3
2
2
2
1
1
1
1
1
1
8
4
2
1
1
1
1
1
1
1
1

请先登录,再进行评论。


Image Analyst
Image Analyst 2022-3-13
You need to give us medalcounts
load medalcounts bronzes silvers golds medals % Load them in.
% Now save them out.
save('medalcounts.mat', 'bronzes', 'silvers', 'golds', 'medals');
then attach it with the paperclip icon.
  4 个评论
Image Analyst
Image Analyst 2022-3-13
I guess you would have to dl
load medalcounts bronzes silvers golds medals % Load them in.
% Now save them out to a file in the local C drive root folder.
save('c:\medalcounts.mat', 'bronzes', 'silvers', 'golds', 'medals');
Anyway, glad it's working.
Steven Lord
Steven Lord 2022-3-14
The first sentence of the task states "Make the code in the Task 1 section into a local function called paretoperc, where medals is the input and pp is the output." Originally you had created a local function paretoperc and had it accept an input named medals, but your function call did not assign its output to a variable named pp. In your most recent attempt you added the missing output argument.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by