delete — Remove files in MATLAB and RunMat.
delete(filename) removes files, while delete(obj) invalidates handle objects or listeners. Supported filename forms, wildcard handling, and diagnostics follow MATLAB semantics.
Syntax
status = delete(filename)
status = delete(filename1, filename2, ...)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
filename | Any | Yes | — | Filename/pattern string, string array, char matrix, cell array of path strings, or handle input. |
filename1 | Any | Yes | — | First filename/pattern/handle input. |
filenameN | Any | Variadic | — | Additional filename/pattern/handle inputs. |
Returns
| Name | Type | Description |
|---|---|---|
status | NumericScalar | Always 0 on success; function primarily acts as a sink. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:delete:InvalidInput | Input arguments are missing or contain unsupported filename value types. | delete: invalid input |
RunMat:delete:InvalidHandle | Handle deletion inputs are mixed with filename inputs or contain unsupported handle values. | delete: invalid handle input |
RunMat:delete:EmptyFilename | A filename input is empty after trimming. | delete: filename cannot be empty |
RunMat:delete:InvalidPattern | Wildcard pattern parsing or structure validation fails. | delete: invalid wildcard pattern |
RunMat:DELETE:FileNotFound | Target path does not exist or pattern matches no files. | delete: file not found |
RunMat:delete:Directories | Target path is a directory instead of a file. | delete: cannot delete directories |
RunMat:DELETE:PermissionDenied | Underlying filesystem operation fails while deleting files. | delete: filesystem deletion failed |
How delete works
- Accepts individual paths, string arrays, cell arrays of character vectors, and char matrices. Each element targets one file.
- Accepts handle objects (
handle) and event listeners, marking them invalid (isvalidreturnsfalse) without touching the filesystem when invoked with non-string inputs. - Expands shell-style wildcards (
*and?) using MATLAB-compatible rules. Patterns must resolve to existing files; otherwise, the builtin throwsRunMat:DELETE:FileNotFound. - Rejects folders. When a target is a directory, RunMat raises
RunMat:DELETE:Directories, matching MATLAB’s “Use rmdir to remove directories” diagnostic. - Propagates operating-system failures (for example, permission errors or read-only files) through
RunMat:DELETE:PermissionDenied. - Expands
~to the user’s home directory and resolves relative paths against the current working folder (pwd). - Treats empty character vectors or empty string scalars as invalid inputs and raises
RunMat:DELETE:EmptyFilename. - When passed an empty string array or empty cell array, the builtin performs no action and returns without error, just like MATLAB.
Does RunMat run delete on the GPU?
delete performs host-side filesystem I/O. When a path argument lives on the GPU (for example, gpuArray("scratch.log")), RunMat gathers the scalar to CPU memory before touching the filesystem. Acceleration providers do not implement dedicated hooks for delete, so there are no GPU kernels or device transfers beyond the automatic gathering of inputs.
GPU memory and residency
No. delete executes on the CPU. If a script accidentally wraps path strings in gpuArray, RunMat gathers the scalars before issuing filesystem calls. Keeping paths on the GPU provides no benefit.
Examples
Deleting a single temporary file
fname = "scratch.txt";
fid = fopen(fname, "w");
fclose(fid);
delete(fname)Removing multiple files with a wildcard pattern
logs = ["log-01.txt", "log-02.txt"];
for i = 1:numel(logs)
fid = fopen(logs(i), "w");
fclose(fid);
end
for i = 1:numel(logs)
delete(logs(i));
endDeleting files listed in a string array
files = ["stageA.dat", "stageB.dat"];
for i = 1:numel(files)
fid = fopen(files(i), "w");
fclose(fid);
end
delete(files)Handling missing files safely with try/catch
try
delete("missing-file.txt");
catch err
disp(err.identifier)
disp(err.message)
endCleaning up build artifacts stored under your home folder
delete("~/runmat/build/*.o")Deleting char-matrix filenames generated programmatically
names = char("stage1.tmp", "stage2.tmp");
for row = 1:size(names, 1)
fname = strtrim(names(row, :));
fid = fopen(fname, "w");
fclose(fid);
end
delete(names)Deleting graphics handles after use
fig = figure;
delete(fig);
tf = isvalid(fig)Expected output:
tf =
0Using delete with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how delete changes the result.
Run a small delete example, explain the result, then change one input and compare the output.
FAQ
What message IDs does delete produce?⌄
Missing files raise RunMat:DELETE:FileNotFound, directories raise RunMat:DELETE:Directories, wildcard syntax issues raise RunMat:DELETE:InvalidPattern, operating-system failures raise RunMat:DELETE:PermissionDenied, and invalid handle inputs raise RunMat:DELETE:InvalidHandle.
Can I delete folders with delete?⌄
No. MATLAB reserves folder deletion for rmdir. RunMat follows suit and throws RunMat:DELETE:Directories when a target is a directory.
Does delete support multiple filenames at once?⌄
Yes. Pass a string array, a cell array of character vectors, or a char matrix. Each element is deleted in turn.
How are wildcard patterns resolved?⌄
RunMat uses MATLAB-compatible globbing: * matches any sequence, ? matches a single character, and the pattern is evaluated relative to the current folder (pwd) unless you pass an absolute path.
What happens when a wildcard matches nothing?⌄
The builtin raises RunMat:DELETE:FileNotFound (just like MATLAB) and leaves the filesystem unchanged.
Do empty arrays raise errors?⌄
Empty string arrays or empty cell arrays simply result in no deletions. Empty strings, however, are invalid and trigger RunMat:DELETE:EmptyFilename.
How do GPU inputs behave?⌄
Inputs on the GPU are gathered to the host automatically. No GPU kernels are launched.
Does delete preserve symbolic links?⌄
Yes. RunMat delegates to the operating system: deleting a symlink removes the link itself, not the target—matching MATLAB.
Can I detect failures programmatically?⌄
Wrap the call in try/catch and inspect err.identifier and err.message just as you would in MATLAB.
Will delete follow relative paths updated by cd?⌄
Yes. Paths are interpreted using the process working directory, so calling cd before delete mirrors MATLAB’s behaviour.
Related Io functions
Repl Fs
addpath · cd · copyfile · dir · exist · fullfile · genpath · getenv · ls · mkdir · movefile · path · pwd · rmdir · rmpath · run · savepath · setenv · tempdir · tempname · uigetfile · uiputfile
Tabular
csvread · csvwrite · detectImportOptions · dlmread · dlmwrite · readmatrix · spreadsheetImportOptions · writecell · writematrix · xlsread
Filetext
fclose · feof · fgetl · fgets · fileread · filewrite · fopen · fprintf · fread · frewind · fwrite
Import
Json
Archive
Http
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how delete is executed, line by line, in Rust.
- View the source for delete in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.