How do I write a good answer for MATLAB Answers?

Since the question, "How do I write a good question for MATLAB answers?" has been asked, I wondered if we could benefit from the corresponding question about giving answers.
Some of the things I have in mind:
  1. How to (or indeed whether to) coax more information out of a sparse OP?
  2. Do I ever want to reveal EVAL?
  3. How to deal with obvious homework cheats?
  4. If I edit an answer (or have a better one) I have given, do I put a big EDIT: to demarcate the new stuff or submit a new answer?
  5. For stock questions (think FP issues), do I put a link to a previous Answer post or the FAQ?
I think each of us has our own approach to all these and more issues, but I'd still like to see what people have to say in one spot. So what other issues come up when you answer a question on Answers? How do you address them? Should we (the regulars) try to stick to a "standard" approach to these?
Thanks

13 Comments

Crumbs. And there I am trying to master the questions! I'd say coaxing more info out of a sparse OP is more on the good question side of things, though.
I think it makes sense to have ONE suggestion per answer. They can be voted up separately to give an idea of individual importance.
What does question 2 mean?
I was talking about the EVAL function. This function is traditionally considered taboo around here.
I don't agree with one suggestion per answer. Unless each suggestion manages to cover the entire situation, then the original poster is going to put together aspects from several of the suggestions to come up with a final answer. Which of the suggestions should the original poster "accept" ? They cannot accept a set of answers.
An answer that is "accepted" should either be the one that solved the problem as asked, or should be the one that provides the most important information towards solving the problem. If the steps towards solving the problem have been deliberately distributed amongst several answers by the respondent because there are multiple avenues available to solving a sub-problem, then "accepting" becomes much less meaningful.
There is a difficulty that there is no clear distinction as to what Answers _are_. Are they intended to be relatively complete solutions to the question, or are they intended to be steps towards solving the question?
In my opinion, "one suggestion per answer" changes the nature of the system sufficiently that at the very least a modified voting system would be required.
A good example is this question. If there is consensus on some of the points, it might be useful to put them together in an answer and accept it.
Often it is best to answer the question they are asking and then answer the question they should be asking - both in the same post.
@Walter: Exactly. The "best answer" can be a merged set of answers. Then we could do it like Doug: Join and summarize the answers, write your own one and accept it. Obviously not matching the intention of MATLAB Answers, but fine for the magic reputation value.
@Walter: I think Doug's suggestion of "one suggestion per answer" was referring specifically to just this question, not all questions in general, since this question is basically designed to be a list of answering guidelines, sorted by importance.
@Walter: I believe Doug was only talking about this question, the one I asked. For this question, one suggestion per answer let's us find out what is most important in answering questions on Answers by looking at the votes. I don't think Doug meant that to be a general approach (thought I could be wrong). Notice that he answered 3 times with 3 suggestions. Only one was voted up, so maybe that one is more important to the community.
Ah... then an example of where his suggestion to "Be Brief" can lead to confusion avoidable by being more verbose.
Indeed, I was only speaking of this type of "Top Ten" kind of question. Each item can be voted individually. Then the best answers will filter up to top.
That sounds like another suggestion which should be suggested as an answer below!

Sign in to comment.

Answers (16)

Use good code formating

2 Comments

Then give us documented reliable markup in comments...

Sign in to comment.

Not sure if this is a good practice. I'm interested in hearing what you think...
If you have a minor addition (or edit) to someone else's answer, post a comment on the answer asking to improve the answer with your suggestions, instead of creating a new answer. This will hopefully reduce redundant answers and multiple answers with small incremental changes.
EDIT: Once the minor addition has been inserted in the answer, the commenter (who asked for the minor addition) should delete the (now meaningless) comment.

8 Comments

Definitely agree with that.
This would work even better if comments could be edited.
Editing a comment: Copy the original comment, delete it, open a new comment, paste and edit it. It is still faster than hitting backspace one single time in the sticky slow "add an answer" box.
@Jiro: Helpful to reduce noise. And if the minor addition was inserted, delete the now meaningless comment.
I know that you can edit by deleting, but it smells like a trick. It's obvious to the contributors to this page, but what about the people asking for homework help?
@Andrew: My message about pseudo-editing was not though for you only, but even for newbies.
Technically shouldn't Jan delete the comment about deleting meaningless comments now that Jiro has updated his post?

Sign in to comment.

I'm generally in favor of pointing out when a key edit (i.e. correction) has been made to an answer for the following reasons:
  • It helps indicate to people who have already looked at your answer that they should give it another read.
  • If an aspect of your answer has been mentioned in another answer or a comment, it's probably best to point out the edit so that the other comments don't look strange.
If it's just a matter of fixing typos, I don't think any indicator is needed.
If the edit makes the answer completely different, like adding a whole different possible solution, adding another answer may be in order since this gives people a chance to vote on the solutions independently.
Regarding the format for indicating an edit, " EDIT: " usually works well, or a lead-in explanation like " Based on the comments, this answer has been updated... " if you're feeling wordy.

5 Comments

*EDIT:* would work well for additions but not for revised or deleted text.
@Andrew: You can set the EDIT: in the comment section, e.g. "EDIT: Question was completely changed".
It drives me batty when the question is edited without an indicator that something has changed. I start to doubt myself, wondering why I said things or wondering if I didn't read the question properly the first time. Marking that something has been edited is important enough that it should not be a matter of discretion at the user level: _anything_ that gets edited should have an automatic update time-stamp put on it (possibly with an exemption for the moderators, though I cannot think at the moment of when such an exemption would be justified.)
@Walter: I agree that the timestamp should update so that at least there is an indication that there was an edit. But that would still require readers to scan and compare update times of questions/answers and comments to see which came first. Someone mentioned having a version history, but there was a comment on it about it creating more noise. Something to think about...
I can think of one case where there could be exemption for moderators -- for pure format editing. Sometimes you see a question with lines of code with no formatting. Moderators can fix that, and not change any of the words. That shouldn't trigger a timestamp change.
In practice, a time-stamp for reformatting does help.
When I as a user see an unreadable posting, I am reluctant to go back to it until I know it has been made readable.
When I as an editor see an unreadable posting, I might not have time to edit right then; if Matt or someone else gets to it first, then the time-stamp update relieves the pressure on me to push other things out of the way to do the editing.

Sign in to comment.

Keep it civil.
  • Even though it may be tempting to write a put-down or overly sarcastic remark, don't.
  • Links to insulting websites are discouraged.
  • It is better to give up trying to help someone and stop posting to a particular Question than to resort to mockery.
  • Sarcasm and nuances of English humor don't always translate well to non-English speakers - especially in text. Just keep in mind that we don't want to drive sincere people away.
Feel free to add elaborations or questions/concerns on the topic of civility to the comments below!

1 Comment

I agree. I think some very good contributors to this site let their frustration show sometimes. If they're getting jaded, they should consider taking a break and let some new people add to their reputation score.

Sign in to comment.

Jan
Jan on 3 Feb 2011
Use an external debugger and paste the copied text instead of struggeling with the keyboard latency of the web interface. Being stressed by this suboptimal interface decimates your power to concentrate on the answer.

9 Comments

I will delete this as soon as MathWorks decides to enable the "Update" button for the preview again. Voting this will be less efficient than a mail to files@mathworks.
This would also mean that if someone has beaten you to the answer, you don't need to submit yours!
@Andrew: I do not understand this.
This has already happened to me once. I worked out an answer and was about to submit it, and someone else had already entered a very similar solution. So there wasn't much point in submitting mine.
@Jan: This is the feature we two find quite useful on gomatlab.de - while you are working on your answer, you can see if somebody else already submitted an answer in between. I created an enhancement request for MATLAB Answers for that
@Andreas: And this is one feature of goMatlab I'm not happy with. The automatic update steals the mouse focus, such that a copy&paste operation creates rubbish. In addition it causes a latency -at least about 0.5sec for updating the complete page, instead of up to 3sec for a single character.
Such automatic updates work very well for low system load. But with increasing traffic unpredictable effects will occur.
How is this solved usually in a multi-tasking environment? The task is (mandatorily or obligatorily) blocked, if some one else *starts* to create an answer, e.g.: "currently answered by Sco". This must be updated only, when the "Add an answer" box is entered the first time - not further auto updates, please.
I sometimes start an answer and then wander away -- back to work on my job, or researching a particular point, or going for supper, or simply giving my brain a rest, or giving myself a "time-out" so I can respond politely.
It would be a shame if everyone else was locked out for minutes or even overnight while I finished the answer (or decided to cancel.)
Also, the system would need to be robust against browser crashes or closing the browser or network problems.
@Walter: So the blocking should be "advisory" to avoid a deadlock - sorry, I've confused the terms. If I see, that *you* have started to answer, it is a good idea to wait, until you are able to respond politely or finished your coffee break.
Sometimes I fall asleep while composing responses. Literally at my desk sometimes, but more often if I have stretched out on the coach to see if I can come up with a new perspective.

Sign in to comment.

Put a clarifying question in the "Comment on this Question" box instead of putting your question as an answer.

2 Comments

If you put sufficient detail in the clarifying question, explaining the difference in meanings, then the clarifying questions themselves can become a framework towards getting the right answer.
Unless they are cycled out of sight by other comments ...

Sign in to comment.

If it has been asked and answered before, link to it.

3 Comments

You've said that before... but you didn't link to it!
Can we link to _Answers_ ? Or just to _Questions_ ?
Instructions for linking to individual Answers and even Comments are shown here: http://www.mathworks.com/matlabcentral/answers/994-wish-list-for-matlab-answer-sections#answer_1459

Sign in to comment.

Ask the writer of an obvious homework question (especially when no work is shown) to:
  1. Provide the work done so far (the code!) and,
  2. Revise the original question to cover a specific MATLAB question.

3 Comments

I think I understand this, but can you revise the wording?
Is that better?
The edit trap! Better than what?! No need to answer - I can guess it. But editing has the power to make the comments totally confusing.
While "work done so far" hits the point, "cover a specific MATLAB question" is not specific to homework cheats (see: how to use STRTOK...).

Sign in to comment.

If the question is vague, ask to clarify instead of assuming the question and answering based on your assumption.

2 Comments

That depends a lot on what we deem the purpose of the forum to be. If it is to be a set of answers to very narrow and specific questions, then your proposal might be appropriate. It would, however, tend to lead to people asking effectively the same question over and over again, as the narrowness of the questions and answers would be such that most people would not understand how to apply the narrow answer to their situation.
My personal approach, of listing the various possible interpretation and answering to each of them, certainly takes more of my time. On the other hand, as it gives a template for recognizing the different circumstances and shows the approach needed for each of them, my answers tend to be applicable and recognizable by a number of people.
A more broadly spread answer that states assumptions is, in my opinion, a better long-term resource. And it leads itself to being linked to as a solution more often.
Are questions to be interpreted as "How do *I* do _exactly_ what is in front of me?", or are they to be interpreted and answered more generally as "What are good approaches to deal with this kind of situation?"
Also, some questioners just don't seem capable of writing a clear question, or respond slowly, or don't respond at all.

Sign in to comment.

Read the question all the way through before answering! (I need to remember this myself.)
An answer should illuminate not dazzle.

7 Comments

This is very subtle. For example, can something be both illuminating and dazzling, even if not both at the same time (on first glance, for instance)? Do you mean: An answer should be illuminating, not only dazzling? I am not sure we can tell the difference as this will be at least partially observer dependent and may evolve even for a particular observer!
Just saying...
Matt,
In trying to be concise I have only succeeded in being cryptic.
These definitions are from the OED and explain the sense in which I used the words:
_illuminate_, v.
* To enlighten intellectually; to give knowledge or understanding to.
* To throw light upon (a subject); to make luminous or clear; to elucidate.
_dazzle_, v.
* To overpower or confound (the mental faculties), esp. with brilliant or showy qualities.
One can only illuminate someone who is receptive to being illuminated. When someone is not receptive, sometimes one can dazzle them in to receptivity.
I think dazzling as you have described it can be very helpful: pack a whole bunch of operations into one line and the user will have to figure out what each one does - a very useful skill.
I think Derek has a point, especially if read as I say above with NOT ONLY in the statement. It is still subtle...
Derek's point echos a principle of good teaching: start with what the students know and then build on it.
It is unlikely there will _ever_ be enough of us to "illuminate" all the doit4me whose major project is due in two days.

Sign in to comment.

Should we trust the title, or should we trust the Question, if the two differ?

2 Comments

I say, trust the question and ask the OP to change the title. An obvious example is question 822.
Whichever one is longer. ;)
Seriously though, this is probably a situation where asking for clarification is likely in order (example: http://www.mathworks.com/matlabcentral/answers/744-what-techniques-can-i-use-to-extract-horizontal-lines-from-noisy-image-data).

Sign in to comment.

At the risk of being obvious, test your answer! I find it useful to compose my answer, with comments, in the Matlab editor. Then I get rid of the % signs and paste into the Answers window.
Be brief

3 Comments

Doug, I'm getting too old to be brief. Maybe if you'd caught me at about Grade 3, but my verbose ways were pretty much set in stone by Grade 5.
Invent time machine. Catch Walter in Grade 3.... nah. I like Walter's answers.
Brevity should be balanced with adequate explanation. Many answers just provide code that will be cryptic to novices.

Sign in to comment.

How about a Wikipedia-like version history?

2 Comments

A version history would contains outdated information, and therefore noise.
See the comments on Kenneth's answer.

Sign in to comment.

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Asked:

on 3 Feb 2011

Edited:

on 14 Nov 2020

Community Treasure Hunt

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

Start Hunting!