Results for
                    No
                
 
                
                    50%
                
  
            
                    Yes, but I am not interested
                
 
                
                    8%
                
  
            
                    Yes, but it is too expensive
                
 
                
                    20%
                
  
            
                    Yes, I would like to know more
                
 
                
                    18%
                
  
            
                    Yes, I am cert. MATLAB Associate
                
 
                
                    2%
                
  
            
                    Yes, I am cert. MATLAB Professional
                
 
                
                    3%
                
  
            
            4779 votes
        
    
                    Always!
                
 
                
                    29%
                
  
            
                    It depends
                
 
                
                    14%
                
  
            
                    Never!
                
 
                
                    21%
                
  
            
                    I didn't know that was possible
                
 
                
                    36%
                
  
            
            1810 votes
        
    Base case:
Suppose you need to do a computation many times. We are going to assume that this computation cannot be vectorized. The simplest case is to use a for loop:
number_of_elements = 1e6;
test_fcn = @(x) sqrt(x) / x;
tic
for i = 1:number_of_elements
    x(i) = test_fcn(i);
end
t_forward = toc;
disp(t_forward + " seconds")
Preallocation:
This can easily be sped up by preallocating the variable that houses results:
tic
x = zeros(number_of_elements, 1);
for i = 1:number_of_elements
    x(i) = test_fcn(i);
end
t_forward_prealloc = toc;
disp(t_forward_prealloc + " seconds")
In this example, preallocation speeds up the loop by a factor of about three to four (running in R2024a). Comment below if you get dramatically different results.
disp(sprintf("%.1f", t_forward / t_forward_prealloc))
Run it in reverse:
Is there a way to skip the explicit preallocation and still be fast? Indeed, there is. 
clear x
tic
for i = number_of_elements:-1:1
    x(i) = test_fcn(i);
end
t_backward = toc;
disp(t_backward + " seconds")
By running the loop backwards, the preallocation is implicitly performed during the first iteration and the loop runs in about the same time (within statistical noise):
disp(sprintf("%.2f", t_forward_prealloc / t_backward))
Do you get similar results when running this code? Let us know your thoughts in the comments below.
Beneficial side effect:
Have you ever had to use a for loop to delete elements from a vector? If so, keeping track of index offsets can be tricky, as deleting any element shifts all those that come after. By running the for loop in reverse, you don't need to worry about index offsets while deleting elements.
                    quick / easy
                
 
                
                    21%
                
  
            
                    themed / in a group
                
 
                
                    20%
                
  
            
                    challenge (e.g., banned functions)
                
 
                
                    13%
                
  
            
                    puzzle / game
                
 
                
                    16%
                
  
            
                    educational
                
 
                
                    28%
                
  
            
                    other (comment below)
                
 
                
                    3%
                
  
            
            117 votes
        
    
                    isstring
                
 
                
                    11%
                
  
            
                    ischar
                
 
                
                    7%
                
  
            
                    iscellstr
                
 
                
                    13%
                
  
            
                    isletter
                
 
                
                    21%
                
  
            
                    isspace
                
 
                
                    9%
                
  
            
                    ispunctuation
                
 
                
                    37%
                
  
            
            2455 votes
        
    
                    Don't use / What are Projects?
                
 
                
                    26%
                
  
            
                    1–10
                
 
                
                    31%
                
  
            
                    11–20
                
 
                
                    15%
                
  
            
                    21–30
                
 
                
                    9%
                
  
            
                    31–50
                
 
                
                    7%
                
  
            
                    51+ (comment below)
                
 
                
                    12%
                
  
            
            4070 votes
        
    
                    2
                
 
                
                    17%
                
  
            
                    3
                
 
                
                    12%
                
  
            
                    4
                
 
                
                    59%
                
  
            
                    6
                
 
                
                    4%
                
  
            
                    8
                
 
                
                    5%
                
  
            
                    Other (comment below)
                
 
                
                    3%
                
  
            
            6419 votes
        
    
                    numel(v)
                
 
                
                    6%
                
  
            
                    length(v)
                
 
                
                    13%
                
  
            
                    width(v)
                
 
                
                    14%
                
  
            
                    nnz(v)
                
 
                
                    8%
                
  
            
                    size(v, 1)
                
 
                
                    27%
                
  
            
                    sum(v > 0)
                
 
                
                    31%
                
  
            
            2537 votes
        
    
                    ismissing( { [ ] } )
                
 
                
                    26%
                
  
            
                    ismissing( NaN )
                
 
                
                    18%
                
  
            
                    ismissing( NaT )
                
 
                
                    11%
                
  
            
                    ismissing( missing )
                
 
                
                    21%
                
  
            
                    ismissing( categorical(missing) )
                
 
                
                    9%
                
  
            
                    ismissing( { '' } ) % 2 apostrophes
                
 
                
                    16%
                
  
            
            896 votes
        
    
                    isempty( [ ] )
                
 
                
                    10%
                
  
            
                    isempty( { } )
                
 
                
                    13%
                
  
            
                    isempty( '' ) % 2 single quotes
                
 
                
                    13%
                
  
            
                    isempty( "" ) % 2 double quotes
                
 
                
                    24%
                
  
            
                    c = categorical( [ ] ); isempty(c)
                
 
                
                    18%
                
  
            
                    s = struct("a", [ ] ); isempty(s.a)
                
 
                
                    22%
                
  
            
            1324 votes
        
    
                    sort(v)
                
 
                
                    8%
                
  
            
                    unique(v)
                
 
                
                    16%
                
  
            
                    union(v, [ ])
                
 
                
                    17%
                
  
            
                    intersect(v, v)
                
 
                
                    14%
                
  
            
                    setdiff(v, [ ])
                
 
                
                    12%
                
  
            
                    All return sorted output
                
 
                
                    33%
                
  
            
            1193 votes
        
    
                    s = ['M','A','T','L','A','B']
                
 
                
                    9%
                
  
            
                    char([77,65,84,76,65,66])
                
 
                
                    7%
                
  
            
                    "MAT" + "LAB"
                
 
                
                    21%
                
  
            
                    upper(char('matlab' - '0' + 48))
                
 
                
                    17%
                
  
            
                    fliplr("BALTAM")
                
 
                
                    17%
                
  
            
                    rot90(rot90('BALTAM'))
                
 
                
                    30%
                
  
            
            2929 votes
        
    
                    eye(3) - diag(ones(1,3))
                
 
                
                    11%
                
  
            
                    0 ./ ones(3)
                
 
                
                    9%
                
  
            
                    cos(repmat(pi/2, [3,3]))
                
 
                
                    16%
                
  
            
                    zeros(3)
                
 
                
                    20%
                
  
            
                    A(3, 3) = 0
                
 
                
                    32%
                
  
            
                    mtimes([1;1;0], [0,0,0])
                
 
                
                    12%
                
  
            
            3009 votes
        
    Have you ever learned that something you were doing manually in MATLAB was already possible using a built-in feature? Have you ever written a function only to later realize (or be told) that a built-in function already did what you needed?
Two such moments come to mind for me.
1. Did you realize that you can set conditional breakpoints? Neither did I, until someone showed me that feature. To do that, open or create a file in the editor, right click on a line number for any line that contains code, and select Set Conditional Breakpoint... This will bring up a dialog wherein you can type any logical condition for which execution should be paused. Before I learned about this, I would manually insert if-statements during debugging. Then, after fixing each bug, I would have to delete those statements. This built-in feature is so much better.
2. Have you ever needed to plot horizontal or vertical lines in a plot? For the longest time, I would manually code such lines. Then, I learned about xline() and yline(). Not only is less code required, these lines automatically span the entire axes while zooming, panning, or adjusting axis limits!
Share your own Aha! moments below. This will help everyone learn about MATLAB functionality that may not be obvious or front and center.
(Note: While File Exchange contains many great contributions, the intent of this thread is to focus on built-in MATLAB functionality.)
                    1
                
 
                
                    33%
                
  
            
                    2
                
 
                
                    34%
                
  
            
                    3
                
 
                
                    18%
                
  
            
                    4
                
 
                
                    5%
                
  
            
                    5
                
 
                
                    3%
                
  
            
                    6+
                
 
                
                    6%
                
  
            
            1643 votes
        
    
                    <= 6 GB
                
 
                
                    10%
                
  
            
                    7–12 GB
                
 
                
                    26%
                
  
            
                    13–22 GB
                
 
                
                    34%
                
  
            
                    23–46 GB
                
 
                
                    19%
                
  
            
                    47–90 GB
                
 
                
                    6%
                
  
            
                    >= 91 GB
                
 
                
                    6%
                
  
            
            15925 votes
        
    
                    Yes, the available tools are great
                
 
                
                    12%
                
  
            
                    Yes, the available tools need help
                
 
                
                    6%
                
  
            
                    No, but I would like to
                
 
                
                    14%
                
  
            
                    No, it is not important to me
                
 
                
                    7%
                
  
            
                    What is test-driven development?
                
 
                
                    61%
                
  
            
            1955 votes
        
    
                    Always
                
 
                
                    12%
                
  
            
                    Sometimes
                
 
                
                    11%
                
  
            
                    In the past, but not now
                
 
                
                    3%
                
  
            
                    Never
                
 
                
                    20%
                
  
            
                    What is Simulink Project?
                
 
                
                    53%
                
  
            
            2443 votes
        
    
                    Always
                
 
                
                    8%
                
  
            
                    Sometimes
                
 
                
                    9%
                
  
            
                    In the past, but not now
                
 
                
                    2%
                
  
            
                    Never
                
 
                
                    23%
                
  
            
                    What is MATLAB Project?
                
 
                
                    58%
                
  
            
            4533 votes
        
    
                    A bunch of quick, simple problems
                
 
                
                    16%
                
  
            
                    A structured, educational set
                
 
                
                    15%
                
  
            
                    Brain-teasers
                
 
                
                    16%
                
  
            
                    Random miscellany
                
 
                
                    3%
                
  
            
                    Something else
                
 
                
                    2%
                
  
            
                    What are Problem Groups?
                
 
                
                    49%
                
  
            
            1777 votes
        
    