How do I write a good question for MATLAB Answers?

I want to get fast and accurate help with my question. What information should I include in the question?
How should I phrase and format my question to make it clear and easy to understand for the people who might help me?

5 Comments

We should reorganize the answers and come up with a the general code of conduct for askinq questions...but it should be brief and selfexplanatory.
@Ned: Thanks for this very important question! It will save the frequent answerers 4 days of additional life time a year, if you move this thread together with a compiled list of answers on top of the Answers list or on the interface for asking new questions.
Obviously your question implies the need of a numerated list as answer. Very interesting.
@Oleg: Good idea. Wait for some further ideas, but the most points overlap already. And then let a native speaker compile the list. (Sorry, I'm still struggeling with English, such that I need a bg pile of words to get my thoughts expressed.)
We should have put only one item per answer. Voting up each individual item would have brought best suggestions to the top.
Great answers! I accepted Doug's because I like the emphasis on avoiding noise, editing to clarify, and accepting good answers. But we might want to consider creating an edited superset of these responses somewhere.
Letting us know how proficient with MATLAB would be helpful. If you let us know you are a beginner than it helps the answer writer tailor a response that would make sense to a beginner, which would make it less likely for the question asker to reply back to an answer for clarification. That happens a lot in the MATLAB Answers forum.

Sign in to comment.

 Accepted Answer

1.) A good title
If you are writing code about a medical procedure like Brain Salad Surgery but getting an error related to indexing, your question is about indexing. References to Brain Salad Surgery is just noise (like it is here!)
2.) Avoid pleasantries
"Hi", "Thanks in Advance", "I am new to MATLAB" is all just pleasantries that add nothing but noise. It is more polite to be brief than it is to add pleasantries.
3.) MATLAB is the product
MatLab, mat lab, mathlab are all distracting and confuse Google.
4.) Make code copy pastable to reproduce
If it makes sense, we should be able to grab your code block, paste it into MATLAB and reproduce your error.
imread('myImage.jpg')
will error on our machines.
imread('trees.tif')
will work on our machines. Try and make it easy for us to help you.
5.) Be brief.
If you can cut your code down relentlessly to just a few lines that cause the error, we can help you better. Cutting out code that is not relevant to the issue simplifies things. Often the act of simplifying will cause you to find your own error!
6.) EDIT your question to clarify.
Do not answer your own question with clarifications. EDIT the question directly.
7.) Accept best answer, vote up good answers.
Do not answer your own question to thank the answerers. ACCEPT the answer. This is the greatest form of thanks you can give. Acknowledgement as the accepted answer is "Sweet mana from heaven" (a quote from a frequent contributor here)

7 Comments

Nice. I like all of these points. Your example on "Brain Salad Surgery" is great! It brings home the point very well. I also like your point about EDITing your question (instead of clarifying with another answer) and that accepting the answer is "the greatest form of thanks".
I do not really agree with the "avoid pleasantries" part. I see the enthusiastic will to help in CSSM and I know, that human brains work with emotions. MATLAB Answers should not be a social network, but a distinct level of expressed politeness helps to encourage eachother.
There ist most likely a difference between people who are payed for (ar at least while) posting here, and others (as me), who are not payed, while they spend their time.
But it is possible also, that this is a cultural difference only.
I agree with you Jan. It is(t) part of American culture, as well as German culture, to have a little pleasantness in our interactions.
It might also be because MATLAB Answers is meant to be a resource for answers or FAQs. It's different from CSSM where the atmosphere is more conversational.
However, "Thanks in advance" is silly.
In example 4, I don't see any difference between the example that is machine-readable and the example that is not.
trees.tif is included with the basic Matlab distribution.

Sign in to comment.

More Answers (4)

Things I like to see in a question:
  1. Clear explanation of the problem, current code included. If the current code doesn't work, a description of HOW it doesn't work is given. (See #4 below).
  2. Example input data which is: A. Short. B. Concise. C. Covers cases (NaN's, zeros, Infs, dimensions) present in real data.
  3. Expected output data corresponding to input data given in #2
  4. All error messages and/or received output (as differentiated from expected output) is given.
  5. A descriptive subject line!
Dear Ned, You gave an excellent example of how to write a good question already:
1. Use a short and descriptive subject. Avoid general formulations like "I need help", "My Matlab function does not work" and "Plz urgent plz".
2. The body of the question should include the minimal number of needed information, but not less. Explain the data available as input and the wanted result (here: "I want get fast and accurate help"). The best method to specify the input data is to show the Matlab function used to obtain it, or some code to create test data. Bad example: "I have an Excel file...". Then it is impossible to predict, if the user knows how to call XLSREAD already, or not. "I want a nice picture" is too vague to lead to matching answers also.
3. Describe the available toolboxes, Matlab and OS-versions, if they concerns the problem. These details do not waste a lot of space: "Matlab 2009a, WinXP, Toolboxes: Signal-Processing, Spline, Financial" - just a line, but might be helpful. E.g. the appearence of GUI elements is often affected by the OS, so mention it. BUT: The question of this thread does not concern any hardware and software details, so such information wastes the readers time.
4. Be aware, that you are very familiar with your problem, but the readers are not. So write your message, relax, and read it again: Is it possible for others to understand each sentence? Bad examples: "I've tried it with a lot of different approaches - nothing worked". Neither the first nor the second part can be reconsidered by others. Concentrate on what you are searching for: one single efficient solution. Therefore write: "I have tried this: [your code] and this problem occurred: [full error message]/[description of results and difference to expectations]".
5. If you can insert a descriptive picture, do it. A handmade drawing can save 1000 words. Use the advantage, that MATLAB Answers is not a newsgroup!
6. If you have problems with a specific command, read the HELP and DOC - twice. If the questions concerns the absolute basics, read the "Getting Started" chapters of Matlab's documentations. Read the FAQ also: http://matlab.wikia.com/wiki/FAQ It is even worth to read it before a problem appears: It contains a list of "frequently asked questions", so most likely these questions will appear in your life also. If the answers are: "read the help", "read the doc" or "read the FAQ" think about deleting your question.
7. Although it is valuable to follow such advices, it is a very common phenomenon, that a question is solved already, if the inputs, the methods and the outputs are exactly defined. So if your question is incomplete, trust in the further inquiries of the readers and answer them. In the first 12 hours after postin look frequently for the questions of people who try to assist you to improve the question until an exact and efficient answer is possible.
8. Either mark the accepted answer or post the working solution, such that other can profit from the discussion also.
  1. Read "About MATLAB Answers" page.
  2. The subject line should be very specific and related to a programming concept (in MATLAB and related products). The scope should not be too broad. For example, "How do I model the human brain using MATLAB and Simulink?" will not get you any answers.
  3. In the problem description, include as much detail as possible. Describe what you have done so far, including any code snippets if available.
  4. If there is a specific error you're seeing in your code, strip down your code to the smallest subset that would reproduce your error, and include that in the question. It would be great to include some sample data so that others can run the code.
  5. Include screenshots, hyperlinks, and formatting to make your question easy to understand. Read this page for markup syntax.
  6. Use "Comment on this Question" or "Comment on this Answer" to thank the poster or ask follow up questions. Do not ask as another "Answer".
  7. Accept the answer you found most useful, so that others who have a similar question will know which one worked.
  8. Do not say "URGENT!! HELP!!" in the subject line. Those questions tend to get the least amount of attention.
Do not forget to ask a question!
Several users have posted a general description of what they are doing or planning to do. Of course an experienced member of this forum can sometimes guess, what the actual question might be. But this is not an efficient method to solve problems.

Categories

Find more on Historical Contests in Help Center and File Exchange

Tags

Asked:

on 2 Feb 2011

Commented:

on 7 Jul 2015

Community Treasure Hunt

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

Start Hunting!