MATLAB Central Discussions - Join the conversation!
主要内容

搜索


Introduction
Comma-separated lists are really very simple. You use them all the time. Here is one:
a,b,c,d
That is a comma-separated list containing four variables, the variables a, b, c, and d. Every time you write a list separated by commas then you are writing a comma-separated list. Most commonly you would write a comma-separated list as inputs when calling a function:
fun(a,b,c,d)
or as arguments to the concatenation operator or cell construction operator:
[a,b,c,d]
{a,b,c,d}
or as function outputs:
[a,b,c,d] = fun();
It is very important to understand that in general a comma-separated list is NOT one variable (but it could be). However, sometimes it is useful to create a comma-separated list from one variable (or define one variable from a comma-separated list), and MATLAB has several ways of doing this from various container array types:
1) from a field of a structure array using dot-indexing:
struct_array.field % all elements
struct_array(idx).field % selected elements
2) from a cell array using curly-braces:
cell_array{:} % all elements
cell_array{idx} % selected elements
3) from a string array using curly-braces:
string_array{:} % all elements
string_array{idx} % selected elements
Note that in all cases, the comma-separated list consists of the content of the container array, not subsets (or "slices") of the container array itself (use parentheses to "slice" any array). In other words, they will be equivalent to writing this comma-separated list of the container array content:
content1, content2, content3, .. , contentN
and will return as many content arrays as the original container array has elements (or that you select using indexing, in the requested order). A comma-separated list of one element is just one array, but in general there can be any number of separate arrays in the comma-separated list (zero, one, two, three, four, or more). Here is an example showing that a comma-separated list generated from the content of a cell array is the same as a comma-separated list written explicitly:
>> C = {1,0,Inf};
>> C{:}
ans =
1
ans =
0
ans =
Inf
>> 1,0,Inf
ans =
1
ans =
0
ans =
Inf
How to Use Comma-Separated Lists
Function Inputs: Remember that every time you call a function with multiple input arguments you are using a comma-separated list:
fun(a,b,c,d)
and this is exactly why they are useful: because you can specify the arguments for a function or operator without knowing anything about the arguments (even how many there are). Using the example cell array from above:
>> vertcat(C{:})
ans =
1
0
Inf
which, as we should know by now, is exactly equivalent to writing the same comma-separated list directly into the function call:
>> vertcat(1,0,Inf)
ans =
1
0
Inf
How can we use this? Commonly these are used to generate vectors of values from a structure or cell array, e.g. to concatenate the filenames which are in the output structure of dir:
S = dir(..);
F = {S.name}
which is simply equivalent to
F = {S(1).name, S(2).name, S(3).name, .. , S(end).name}
Or, consider a function with multiple optional input arguments:
opt = {'HeaderLines',2, 'Delimiter',',', 'CollectOutputs',true);
fid = fopen(..);
C = textscan(fid,'%f%f',opt{:});
fclose(fid);
Note how we can pass the optional arguments as a comma-separated list. Remember how a comma-separated list is equivalent to writing var1,var2,var3,..., then the above example is really just this:
C = textscan(fid,'%f%f', 'HeaderLines',2, 'Delimiter',',', 'CollectOutputs',true)
with the added advantage that we can specify all of the optional arguments elsewhere and handle them as one cell array (e.g. as a function input, or at the top of the file). Or we could select which options we want simply by using indexing on that cell array. Note that varargin and varargout can also be useful here.
Function Outputs: In much the same way that the input arguments can be specified, so can an arbitrary number of output arguments. This is commonly used for functions which return a variable number of output arguments, specifically ind2sub and gradient and ndgrid. For example we can easily get all outputs of ndgrid, for any number of inputs (in this example three inputs and three outputs, determined by the number of elements in the cell array):
C = {1:3,4:7,8:9};
[C{:}] = ndgrid(C{:});
which is thus equivalent to:
[C{1},C{2},C{3}] = ndgrid(C{1},C{2},C{3});
Further Topics:
MATLAB documentation:
Click on these links to jump to relevant comments below:
Dynamic Indexing (indexing into arrays with arbitrary numbers of dimensions)
Nested Structures (why you get an error trying to index into a comma-separated list)
Summary
Just remember that in general a comma-separated list is not one variable (although they can be), and that they are exactly what they say: a list (of arrays) separated with commas. You use them all the time without even realizing it, every time you write this:
fun(a,b,c,d)
I'm trying to solve one problem in Cody, but a function 'fmincon' is not recognized by the online compiler. Is there any way to use functions in optimization toolbox in Cody?

In the past 2 months, we had a lot of fun together playing in the two contests. To make future contests better and more appealing to you, we created a 1-minute survey to understand your experience.

Your feedback is critical to us. Thank you in advance and hope to see you in 2022!

After 7 weeks of fun, the MATLAB Central community 20th anniversary contests have concluded! Together, we shared the art of MATLAB and contributed to the battle against the global pandemic. See the fantastic stats below.

MATLAB Mini Hack Winners - Week 4

In Week 4, we invited the MATLAB Graphics team to help judge the entries. As the authors of the MATLAB functions used in every entry, they made sure every entry selected used a unique graphics function or technique from the other winners. Here are their choices:

1. Umbrellas by Shanshan Wang

Comment: Cool use of 'swarmchart' to make art from distributions; Only use of one of our newest graphics functions

2. Happy Sheep by Victoria

Comment: Cute!

3. Alien Giant by Jenny Bosten

Comment: Original idea, well textured, and efficient code

4. 3D Ultrasound by Adam Danz

Comment: Replicate source material very well. Effective use of lighting and material. Overall, impressive to produce this image given the limitation

5. Sunset in the Savanna by Sebastian Kraemer

Comment: Looks cool! Nice mix of 'image', 'fill' and 'scatter' commands.

6. Night Flight by Ratul Das

Comment: original; clever use of 'rectangle'

7. Lantern #2 by Tim

Comment: Nice use of 'getframe' to create a texture for 'surf' for a compelling picture

8. Geometric Design (6) by Daniel Pereira

Comment: Looks like some walls at MathWorks

9. Rosette 1313 by Alex P

Comment: Looks cool! Nice use of 'pcolor'

10. Mandelbrot contour by Sumihiro

Comment: Best use of contour!

11. Aim High by Murty PLN

Comment: Largest number of unique graphics objects for the Mini Hack (plot, patch,stairs,stem,text)

In the spirit of Mini Hack, the MATLAB Graphics team also created several cool graphs about the contest. Facing a similar space limit, I have picked only 2.

Bonus Prize Winners - Week 4

Congratulations to our 5 winners for their dual participation in the Treasure Hunt and the MATLAB Mini Hack. Yogiraj Bhagavatula, Pramod Devireddy, Devika U, FruitsLord, and Augusto Mazzei.

Lucky voters - Week 4

Congratulations to the lucky voters who cast the 12000th vote (Gordg Garin), 12500th vote (Eder Esteban Reyes), 13000th vote (Peram Balakrishna), 13500th vote (Emerson Nithiyaraj), 14000th vote(Sekar Naai), 14500th vote (Arika Amasarao), 15000th vote (Nikita Yakovlev), 15500th vote (Kesava Rao), and 16000th vote (Kundi Chandra Sekhar).

Grant Prize Winners

Finally, after validating entries and votes, we have picked the grand prize winners. We appreciate the time and effort you spent and the awesome entries you created. Huge congratulations!

1. Top 10 Authors of most voted entries

Each author will receive 5 customized T-shirts with the winning image and your name on the back of the T-shirts. You can choose the sizes and share them with your family or friends.

2. Top 10 Authors with most total votes

Top 10 contestants on the leaderboard will each get an Amazon gift card. The top 3 winners on the leaderboard will also earn special virtual badges.

  • Ciro Bermudez
  • KSSV
  • Juan Villacrés
  • Murty PLN
  • Pink_panther
  • Jenny Bosten
  • KARUPPASAMYPANDIYAN M
  • Jr
  • Adam Danz
  • Victoria

On behalf of the MATLAB Central community team, we thank you for joining our celebration of the MATLAB Central community’s 20th anniversary with us in the past 7 weeks. We hope you enjoyed these contests and look forward to seeing you in next year’s contests. Question: “What contests would you like to see next?”

In Week 3, we passed several amazing milestones! 1,000 Participants in the Treasure Hunt , 1,000 ENTRIES and 10,000 votes in the MATLAB Mini Hack , and $10,000 charity donation from both contests! I recommend you read Ned Gulley’s recent blog post , which is a fantastic summary of the contest highlights.

During the last week of this contest, we strongly encourage you to inspire your colleagues, classmates, or friends to participate by either VOTING or CREATING entries. To add some fun, we will give out a T-shirt to LUCKY voters who cast:

  • The 12000th vote
  • The 12500th vote
  • The 13000th vote
  • The 13500th vote
  • The 14000th vote
  • The 14500th vote
  • The 15000th vote
  • The 15500th vote
  • The 16000th vote

MATLAB Mini Hack Winners - Week 3

We’ve received many creative entries for our new categories. Congratulations to the winners! Each of you won a special edition T-shirt:

Greg, entry: better Christmas tree , category: Holidays

Ratul Das, entry: To All Pepperoni Lovers , category: Food

Peter Stampfli, entry: Louis V , category: Fractals

Adrien Leygue, entry: Stained Glass membrane , category: MathWorks Logo

Spencer Miesner, entry: ~Breathe~ , category: Album Cover

Stewart Thomas, entry: The only QR code you ever need , category: Black & White

Sebastian Kraemer, entry: sun , category: 3D

Jenny Bosten, entry: The joys of spring , category: Plant

Adam Danz, entry: MATropolis rooftop view , category: Illustration

Eric Ogier, entry: UFO , category: Fun

Simon Thor, entry: Mandelbrot in 52 characters , category: Concise

Tim, entry: Low Tide , category: Realism

Bonus Prize Winners - Week 3

We are giving out additional giveaways to participants of both the Treasure Hunt and the MATLAB Mini Hack . Congratulations to our 5 winners. Each of you has also won a special edition T-shirt.

  • Teodo
  • Dyuman Joshi
  • Shanshan Wang
  • Nirvik Sinha
  • Felipe Torres

Week 4

After the contest ends, we need additional time to validate entries for Grand Prize and Weekly Prize. The winners are expected to be announced within a couple of days after the contest ends. Thank you in advance for your patience.

Mariola Camacho Lie
Mariola Camacho Lie
上次活动时间: 2021-10-23

I already solved some problems in Cody, why does he not increase my points or allow me to earn badges?

In Week 2, the contest entered a new phase – the voting started! As of today, 6000+ votes have been cast on almost 1000 entries in the GALLERY! As a result, YOU raised $5000+ for Direct Relief in addition to the $2400 raised via the Treasure Hunt contest! We encourage you to continue sharing the contest to inspire others to participate by either voting or creating new entries so we can donate even more!

MATLAB Mini Hack Winners - Week 2

I won’t say judging is getting easier in Week 2 - amazing entries keep coming in every day. Congratulations to the winners! Each of you has won a special edition T-shirt.

Bonus Prize Winners - Week 2

We are giving out additional giveaways to participants of both the Treasure Hunt and the MATLAB Mini Hack . Congratulations to our 5 winners. Each of you has also won a special edition T-shirt.

  • Simon Thor
  • Eric Ogier
  • David Hill
  • Lyes Demri
  • Highphi

What’s new in Week 3?

In Week 3, we will add several new categories in which we hope to see more creative entries:

  • Holidays
  • Album covers
  • Food & Drinks
  • MathWorks logo
  • Fractals

In just one week, 500+ amazing entries were created. Math rocks and you rock!

Help us show the world the beauty of mathematics by sharing your work with your friends, classmates, or colleagues. You can also help fight the global pandemic by voting. For each vote, MathWorks will donate $1 to Direct Relief. See the Voting FAQs below for details.

MATLAB Mini Hack Winners - Week 1

Let’s start by saying: your awesome work made our judging VERY HARD! We came up with several categories with one winner each. Congratulations to the winners! Each of you won a special edition T-shirt:

Bonus Prize Winners - Week 1

As we announced last week, we are giving additional giveaways to participants of both the Treasure Hunt contest and the MATLAB Mini Hack contest . Congratulations to our 5 winners. Each of you also won a special edition T-shirt

  • Jan Orwat
  • warnerchang
  • Davide OLIVIERI
  • Daniel Niblett
  • KARUPPASAMYPANDIYAN M

Voting FAQs:

Q1: Who can vote?

Anyone with a MathWorks account can vote.

Q2: How many times can I vote?

There here is no limit to the number of votes you can cast. Vote for as many entries as you like (one vote per entry).

Q3: How do my votes increase MathWorks’ charity donation?

For every vote an entry gets, we will donate $1 to Direct Relief with a maximum amount of $20 donated per entry. MathWorks will donate up to a maximum of $20,000 based on the combined totals raised by task participation in the Treasure Hunt and voting in the MATLAB Mini Hack .

Q4. How do I win?

At the end of the contest, the top 10 participants on the leaderboard will each get an Amazon gift card and the top 3 will earn special badges. The 10 highest voted entries will win 5 customized T-shirts. See the full contest details.

Every week, we will also award surprise prizes for more fun.

Note that MathWorks staff are NOT eligible for prizes.

Q5: How do votes on my entries determine my rank on the leaderboard?

The total number of votes on ALL of your entries determines your rank on the leaderboard.

Q6: Do votes on remixed entries add votes to the original entry?

No. We count only direct votes on an entry.

Q7: Is the code (also) automatically compared to earlier submissions to determine the remix tree?

No. You have to remix an entry.

Just in 2 days since the contest started, we already have 200+ awesome entries in the MATLAB Mini Hack contests. We are excited to see so many talented and creative community members enjoying the contest and learning from each other.

If you haven’t created your entry, try remixing an entry you like. Make some SMALL changes and see what it would look like. Remix is highly encouraged in this contest.

If you haven’t entered the Treasure Hunt contest, give it a try. Your participation will not only win you a prize but also bump up MathWorks’ donation to a charity organization that fights the global pandemic.

Reminder:

  • Voting will start next Monday.
  • Weekly surprise giveaways will also be announced next Monday. Still time left to create your entries, original or remixed!

As part of MATLAB Central’s 20 year anniversary celebration, we created the MATLAB Mini Hack . The contest starts today on Oct. 4th!

What to do?

Generate an interesting image using up to 280 characters of MATLAB code.

Who can play?

Participants across all skill levels are welcome. Create original entries of your own code, remix others’ entries and make them your own, or simply vote on ENTRIES you love!

How to win prizes?

Those at the top of the leaderboard at the end of the contest will win up to $300 Amazon gift cards, 5 customized T-shirts, or special badges. Visit the prizes section on the contest page for more information.

To add more fun, we will award RANDOM PRIZES that every participant has a chance to win.

  • Each week, we will pick 5 players who participate in both the Treasure Hunt and MATLAB Mini Hack .
  • Each week, we will have different surprise giveaways.

Important Notes

  • The first week (Oct. 4th, 2021 ~ Oct. 10th 2021) is for creating entries only. Voting starts on Week 2.
  • Make sure you follow the contests (click the ‘follow the contests’ button on the top) to get notified when prizes are awarded and of other important announcements. We hope you are the winner!
I need to put a number of problems on MATLAB cody under same Problem group, as many other people have done.
Can anyone please help me on this.

Join our celebration of the 20th anniversary of MATLAB Central community! You are invited to enter 2 contests - A Treasure Hunt and a MATLAB Mini Hack - to have fun and win prizes.

How to Play

  • In the Treasure Hunt, complete 10 fun tasks to explore the ‘treasures’ in the community.
  • In the MATLAB Mini Hack, use up to 280 characters of MATLAB code to generate an interesting image. Simply vote for the entries that you like or share your own entries to gain votes.

Prizes

You will have opportunities to win compelling prizes, including special edition T-shirts, customized T-shirts, Amazon gift cards, and virtual badges. Your participation will also bump up our charity donations.

Ready to participate?

Visit the community contests space and choose the contest you’d like to enter. Note that:

  • You need a MathWorks account to participate. If you don’t have a MathWorks account, you can create one at MathWorks sign in .
  • Make sure you follow the contests (click the ‘follow the contests’ button on the top) to get notified for prize information and important announcements.

For the full contest rules, prizes, and terms, see details here .

We hope you enjoy the contests and win big prizes. NOW, LET THE CELEBRATION BEGIN!

Let's say MathWorks decides to create a MATLAB X release, which takes a big one-time breaking change that abandons back-compatibility and creates a more modern MATLAB language, ditching the unfortunate stuff that's around for historical reasons. What would you like to see in it?
I'm thinking stuff like syntax and semantics tweaks, changes to function behavior and interfaces in the standard library and Toolboxes, and so on.
(The "X" is for major version 10, like in "OS X". Matlab is still on version 9.x even though we use "R20xxa" release names now.)
What should you post where?
Wishlist threads (#1 #2 #3 #4 #5): bugs and feature requests for Matlab Answers
Frustation threads (#1 #2): frustrations about usage and capabilities of Matlab itself
Missing feature threads (#1 #2): features that you whish Matlab would have had
Next Gen threads (#1): features that would break compatibility with previous versions, but would be nice to have
@anyone posting a new thread when the last one gets too large (about 50 answers seems a reasonable limit per thread), please update this list in all last threads. (if you don't have editing privileges, just post a comment asking someone to do the edit)
I created a problem in Cody that approximates e. To test the user's solution, I compare their solution to e. What I want to do instead is compare the user's solution to my reference solution. The question is how do I call the reference solution in the test suite?
This is currently my test suite.
sol=exp(1);
y_correct = playgame();
assessVariableEqual('y_correct',sol);
I created several problems recently in CODY. Some of them got removed automatically. I was curious as to why.
It is possible that the problems used latex in their description, so I am not sure if that was the reason they got rejected by the cody server.
I created some problems last night and created a group too. All those are now missing.
Also my ranking progress, activites, badges earned last night are missing too.
Hi all,
I hope everyone is doing well and keeping safe. I was wondering, are there any Cody challenges for Simulink these days?
I saw a post from 2015 (https://blogs.mathworks.com/simulink/2015/08/07/modeling-and-simulation-challenge-in-cody/) and it seems there was a Simulink or "Modeling and Simulation Challenge" problem group, but I couldn't find this group anymore. Perhaps I missing something?
Thank you beforehand.
Tungky
Is anyone else disappointed with uifigures? It seems apparent that these will eventually replace traditional figures, but there is still so much that doesn't quite work. I've tinkered with uifigures since their introduction in release 2016a, but even in 2020a I can't reliably export a uifigure to a graphics file. Sure it works sometimes, but not if a uipanel is present. The exportgraphics command is not as powerful as the print command, leaving some graphic formats (such as *.svg and *.eps) unsupported. How do you generate graphic files of a specific size? You can't even use subplots without overriding the default AutoResizeChildren setting!
Everything with uifigures seems to be slower and less stable than the figure variant. App Designer is much better than GUIDE, but that is not exactly high praise. I would rather generate "apps" programatically across several files instead of dealing with a single-file class definition containing 1000+ lines.
Where is this transition going? MATLAB graphics are moving away from Java in favor of JavaScript, and I'm not sure that we are at all ready for that.

Happy New Year, everyone! We hope you enjoyed the Cody contest in 2020, learned new MATLAB skills, and made a friend or two. While the 2020 contest has concluded, the fun and learning never end.

Please take the 1-minute survey to talk about your experience (only 2 required questions). Our goal is to make future contests better and more appealing to you, so your feedback is critical to us.

Thank you in advance and hope to see you again in the 2021 contest.

I see this solution on the Cody solutions list. Solution 1949216
I am puzzled as to how this could possibly be rated as correct (size 48)
(BTW - I am pretty sure I saw this, or similar, before.)
function ans = fileread(varargin)
' ';
a=1;
b=3;
a=1;
b=3;a=1;
b=3;a=1;
b=3;a=1;
b=3; end
Go to top of page