Contenuto principale

Results for


In problem 16 I used the following solution:
function b = nearZero(a)
b = max(a(imdilate(a == 0, [1 1 1])));
end
It is working pretty well on mathlab but when I submit my answer to cody, the following error is generated:
Undefined function 'imdilate' for input arguments of type 'double'.
Error in nearZero (line 2)
b = max(a(imdilate(a == 0, [1 1 1])));
Error in Test1 (line 3)
assert(isequal(nearZero(a),b))
In number 5, its written that the correct answer is c = 1 but the secomnd person has more change than the first person, therefor the correct answer should be 2.Likewise in number 6.
Hi, I'm trying to solve this problem but I'm getting an error so far.
Problem:
Given a vector a, find the number(s) that is/are repeated consecutively most often. For example, if you have
a = [1 2 2 2 1 3 2 1 4 5 1]
The answer would be 2, because it shows up three consecutive times
What I've written so far (not done):
a = [1 2 2 2 1 3 2 1 4 5 1];
[x,y] = size(a);
counter = zeros(1,10);
if x == 1
for i=1:1:y
if a(i) == a(i+1)
counter(a(i)) = counter(a(i))+1
end
end
else
for i=1:1:x
if a(i) == a(i+1)
counter(a(i)) = counter(a(i))+1
end
end
end
But it says "error" in the line of "if a(i) == a(i+1)". I noticed that it creates a variable called "i" which value is 11, but it should create a vector from 1 to 11. What's wrong here?
I know my solution might not be in the right direction or something, but please don't tell me anything!
Thanks in advance
Rik
Rik
Last activity il 4 Nov 2022

There are multiple ways to create a graphical user interface (GUI) in Matlab. Which method is the best depends on multiple factors: the complexity of the project, to what extent it should be a long-term solution, on what releases your GUI should work, your available time, your skill level, and probably other factors I'm forgetting.
To keep the thread clear I'll attempt to provide a short outline a few ways in this question, and leave the details for the answers. (@anyone with editing privileges: feel free to update the section below if I missed something important and am slow in editing this question)
---------------------------------------------------------------------------------------------------
GUIDE
GUIDE is probably the first tool new users will encounter. It is very useful for quickly putting something together, but it is otherwise fairly limited. It requires maintaining (and distributing) both a .m and a .fig file. Note that the GUIDE environment will be removed in a future release. After GUIDE is removed, existing GUIDE apps will continue to run in Matlab but they will not be editable in GUIDE. If you're starting a new GUI, don't use GUIDE. If you're updating an existing GUIDE GUI, migrate it to AppDesigner. In R2021a the first step for this removal was taken: all templates except the blank template have been removed.
GUILT
Although I haven't had a detailed look myself, it seems a list like this is not complete without at least mentioning the GUI Layout Toolbox, which is available on the file exchange and offers a lot of customization options.
Programmatic GUIs
You can bypass GUIDE and use the normal figures and functions like uicontrol to build GUIs from code. This makes the design less visual, but more flexible for future additions.
App Designer
The official successor to GUIDE, AppDesigner is not based on functions, but works similar to a class. It uses uifigure and mostly uses graphical elements that are incompatible with 'normal' GUIs that are created with a figure (or .fig).
Dear Sir or Madam
I tried to solve the cody-problem namend in the title.
Could you pleas tell me how I should name the vektor/variable in which it should be presentet?
Thank you for helping me.
Yours faithfully
Jann Borlinghaus
I wrote a Cody problem, but I want to prevent people from using tricks to get a false "best" solution.
For example, many people do something like the following:
regexp '' '(?@"CODE HERE)';
in order to get the size of their program down to something quite small. I want to prevent this. I have seen people using some weird tests to try to block this, but I don't know how they work and when I try to copy them they fail.
Would it make sense that, in order to enhance coding experience with practice exercises, each section of the Matlab Academy courses reference specific CODY problems related to that section so the CODY problems can be used in parallel with the structure of the Matlab Academy courses?
I started with Cody today and I found the file calculateSize.m https://de.mathworks.com/matlabcentral/fileexchange/34754-calculate-size which should determine the size of my solution. Unfortunately I do not get it to run. Can someone explain this to me or maybe explain how exactly the size of the solution is calculated?
Summary:
Dynamically accessing variable names can negatively impact the readability of your code and can cause it to run slower by preventing MATLAB from optimizing it as well as it could if you used alternate techniques. The most common alternative is to use simple and efficient indexing.
Explanation:
Sometimes beginners (and some self-taught professors) think it would be a good idea to dynamically create or access variable names, the variables are often named something like these:
  • matrix1, matrix2, matrix3, matrix4, ...
  • test_20kmh, test_50kmh, test_80kmh, ...
  • nameA, nameB, nameC, nameD,...
Good reasons why dynamic variable names should be avoided:
There are much better alternatives to accessing dynamic variable names:
Note that avoiding eval (and assignin, etc.) is not some esoteric MATLAB restriction, it also applies to many other programming languages as well:
MATLAB Documentation:
If you are not interested in reading the answers below then at least read MATLAB's own documentation on this topic Alternatives to the eval Function, which states "A frequent use of the eval function is to create sets of variables such as A1, A2, ..., An, but this approach does not use the array processing power of MATLAB and is not recommended. The preferred method is to store related data in a single array." Data in a single array can be accessed very efficiently using indexing.
Note that all of these problems and disadvantages also apply to functions load (without an output variable), assignin, evalin, and evalc, and the MATLAB documentation explicitly recommends to "Avoid functions such as eval, evalc, evalin, and feval(fname)".
The official MATLAB blogs explain why eval should be avoided, the better alternatives to eval, and clearly recommend against magically creating variables. Using eval comes out at position number one on this list of Top 10 MATLAB Code Practices That Make Me Cry. Experienced MATLAB users recommend avoiding using eval for trivial code, and have written extensively on this topic.
Gregory
Gregory
Last activity il 13 Giu 2017

Something seems to either have changed with webread/urlread behavior with R2016a or the Cody site has changed its authentication after it's September 2016 upgrade. Now, when ever I make a call using either webread (with weboptions) urlread using "My Cody" url, I get the html that corresponds to an unauthenticated user.
I've tried passing credentials using weboption and also cached the credentials using the built in Matlab browser - neither helped in seeing the authenticated version of this page.
Any help in understanding where the problem/solution lies would be helpful. Easily reproduced by running...
URL = 'https://www.mathworks.com/matlabcentral/cody/players/1261697-gregory/solved';
[Contents Status] = urlread(URL);
Compare this to the source pulled down when authenticated with Chrome (for example, search for the work "two"). FYI: this has worked for a couple of years up until now...
Inspired by Chad Greene's " MATLAB jokes or puns " thread, and in celebration of 15 years of the MathWorks Community site, does anyone out there want to share their poetic creativity? Limericks, haiku, sonnets... Go!
And to start off, my (slightly off-topic) submission on Chad's thread:
There was an old math guy called Cleve
who, while teaching, a pipe-dream conceived:
of a language so clean
you can say what you mean!
From our suffering we've all been relieved.
O45
O45
Last activity il 23 Ott 2018

Hi, I am uploading the answers to cody problems. Although most of answers are correct but my size is bigger than the best answer. How can I view the best answer?
The community is very helpful, yet I feel really powerless that I cannot find the appropriate way to code, nor find the problems with the codes I have written. I have read numerous books on MATLAB, mostly related with science and engineering applications. Any advice to improve would be greatly appreciated. Thanks.
James
James
Last activity il 11 Giu 2015

Apologies for putting this question here, but I'm not sure there's a specific forum for Cody-related questions.

I recently noticed that a new badge for "Magic Numbers Master" had been created and awarded. When I entered my profile to check that out, I noticed that I had received that badge, but lost the badge for "Cody Challenge Master." I thought that maybe my solution had been messed up because of a change in one of the test suites that my solution missed, as this has happened a number of times on other problems. According to the text underneath the badge icon, I've still solved all 96 of the questions in the Cody Challenge. All of the problems listed as part of that challenge are still marked as "Solved." Has anyone else run into this issue?

Chad Greene
Chad Greene
Last activity il 12 Set 2023

Are there any good Matlab jokes? I don't mean why or any other Easter eggs, I mean good jokes involving Matlab. Actually, that bar may be a bit too high. Any jokes, good or bad, let's hear 'em.
I created a solution for Cody Problem 1745 (Get me!) that is very simple and works perfectly on my computer; but in Cody, it results in the error:
Error: Undefined function or variable 'me'.
The test code is:
get = me();
y = rand(1,12345);
!rm now.m
!rm assert.m
assert(get == now)
My solution is:
classdef me
methods
function tf = eq(obj,~)
tf = true;
end
end
end
Why doesn't Cody accept this?
(P. S.) And why doesn't it accept function definitions like
function justDoIt
(which are appropriate for some problems and accepted by MATLAB) but requires at least one input and output?
if i want write fewer codes in cody,what should I pay attention to?
Can anyone explain how Cody calculates the size of a program?
I read the help, but couldn't understand. :(
Why cody does not allow 'eval', 'evalc','feval' etc functions in the solutions? What is alternative to these functions?
e.g. I need to use:
if f='3*x'
x=0:10;
y=eval(vectorise(f))
so that values of y can be calculated as 3.*x
bt cody does not let us to use functions like eval
What is the alternative?