Your First MATLAB Script
A MATLAB script is a plain text file saved with a .m extension that contains a sequence of MATLAB statements executed in order, exactly as if you'd typed them one by one into the Command Window — you create one via Home > New Script or edit myScript.m, and you run it either by pressing F5 in the Editor or by typing its filename (without the extension) at the Command Window prompt, provided the file is in the current folder or on the search path.
Cricket analogy: A MATLAB script is like a pre-written team sheet handed to the twelfth man to read out in order -- each instruction, a batting position, executes exactly as written, top to bottom, the same sequence as if the captain announced them one at a time live.
Comments, Output, and Suppressing It
Lines beginning with % are comments and ignored by the interpreter, while %% starts a labeled 'section' that the Editor lets you run independently with Ctrl+Enter; every statement that doesn't end in a semicolon automatically echoes its result to the Command Window (e.g. x = 5 prints x = 5), whereas adding a semicolon (x = 5;) suppresses that output, and functions like disp(x) or fprintf('Value: %d\n', x) give you controlled, formatted output regardless of the semicolon.
Cricket analogy: A trailing semicolon suppressing output is like a scorer choosing not to announce every single dot ball over the stadium PA -- the run still counts internally, but nothing gets broadcast unless it's a boundary worth announcing.
%% Section 1: Setup
% This script computes and displays basic statistics for a data set
data = [72 85 90 61 78 95 88]; % semicolon suppresses echo
%% Section 2: Compute statistics
avgScore = mean(data); % no semicolon -> echoes avgScore = 81.2857
maxScore = max(data);
if avgScore >= 80
disp('Class average is strong.');
else
fprintf('Class average is %.1f, below target.\n', avgScore);
end
for i = 1:length(data)
fprintf('Student %d scored %d\n', i, data(i));
endSwitch a script to a Live Script (.mlx) via Home > New > Live Script to interleave formatted text, equations, and inline plots with your code in a single notebook-style document -- useful for tutorials and reports, though plain .m scripts remain the standard for reusable, version-controllable code.
Basic Control Flow in a Script
Inside a script you use the same if/elseif/else/end and for/while ... end control-flow blocks you'd use anywhere else in MATLAB — note that every block is closed with the keyword end rather than braces, and a for loop always iterates over the columns of whatever you give it, so for i = 1:5 loops i through 1 to 5, while for col = someMatrix loops once per column of that matrix.
Cricket analogy: A for loop iterating column by column through a matrix is like a bowler working through an over delivery by delivery, one ball at a time, always in the same fixed left-to-right sequence.
Saving, Naming, and the Current Folder
Script filenames must start with a letter, can contain only letters, numbers, and underscores (no spaces or hyphens), and cannot match a MATLAB keyword like if or for; naming a script the same as a built-in function (e.g. saving your own script as sum.m) will shadow that built-in within the folders where your script takes precedence, which can cause confusing bugs elsewhere in your code that still expects the original built-in behavior.
Cricket analogy: Naming your script the same as a built-in function is like a newly signed player wearing the exact same shirt number as a legendary retired player on the same franchise -- the club has to decide which 'sum' actually gets called onto the field, causing confusion in team sheets.
Avoid naming a variable the same as a script or function you plan to call later in the same script -- for example, assigning mean = 10; then later calling mean(data) will error, because MATLAB now treats mean as a numeric variable, not the built-in statistics function, for the rest of that scope.
- A script is a .m file containing a sequence of statements executed top to bottom, exactly as if typed into the Command Window.
- Run a script with F5 in the Editor, or by typing its filename (no extension) in the Command Window.
- % starts a comment; %% starts a runnable section; a trailing semicolon suppresses echoed output.
- disp and fprintf give explicit, formatted output regardless of semicolons.
- Control-flow blocks (if/for/while) are always closed with end, not braces.
- Script filenames can't start with a number or contain spaces/hyphens, and shouldn't shadow built-in function names.
- Assigning a variable the same name as a function you still need to call later will break that function call for the rest of the scope.
Practice what you learned
1. What file extension does a standard MATLAB script use?
2. How do you suppress the echoed output of a statement in a script?
3. What keyword closes every control-flow block (if, for, while) in MATLAB?
4. What happens if you save your own script as sum.m?
5. What does %% do at the start of a line in the Editor?
Was this page helpful?
You May Also Like
MATLAB Variables and Data Types
How MATLAB creates and stores variables, and the core numeric, character, logical, and container data types.
MATLAB Operators and Expressions
Arithmetic, relational, logical, and element-wise operators in MATLAB, and how operator precedence governs expression evaluation.
Installing MATLAB and the IDE
How to obtain a MATLAB license, install it on Windows, macOS, or Linux, and navigate the desktop IDE's core panels.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics