RunMat
  • Pricing
RunMat
GitHub
GitHub
DownloadSign InTry in Browser
DesktopRuntimeServer
RunMat

Run math blazing fast

GitHubX (Twitter)LinkedIn

Company

  • About
  • Pricing
  • Contact

Explore

  • RunMat for academia
  • RunMat vs MATLAB Online
  • Benchmarks

Get product updates and release notes from the RunMat team.

© 2026 Dystr · Made withfor the scientific community.

RunMat™ is a registered trademark of Dystr, Inc. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.

LicensePrivacy
/
See all docs
Builtin Reference
    • addpath
    • cd
    • copyfile
    • delete
    • dir
    • exist
    • fileattrib
    • fileparts
    • fullfile
    • genpath
    • getenv
    • getpref
    • isenv
    • isfile
    • isfolder
    • ispref
    • ls
    • matlabroot
    • memmapfile
    • mkdir
    • movefile
    • open
    • opentoline
    • path
    • pathsep
    • pcode
    • pwd
    • readstruct
    • rehash
    • restoredefaultpath
    • rmdir
    • rmpath
    • run
    • savepath
    • setenv
    • setpref
    • system
    • tempdir
    • tempname
    • uigetdir
    • uigetfile
    • uiputfile
    • unsetenv
    • userpath
    • what
    • winqueryreg
    • xmlread
    • xmlwrite

uigetfile — Open a host file-selection dialog and return the selected file name and path.

uigetfile requests an open-file selection from the active RunMat filesystem provider and returns MATLAB-compatible output values. Interactive hosts can implement the provider hook to show a native or browser picker; noninteractive hosts return the standard cancellation values.

Syntax

file = uigetfile()
file = uigetfile(filter)
[file, path] = uigetfile(filter, title)
[file, path, index] = uigetfile(filter, title, defaultName)
[file, path, index] = uigetfile(filter, title, defaultName, "MultiSelect", value)

Inputs

NameTypeRequiredDefaultDescription
filterAnyNo"*.*"File extension pattern, semicolon-delimited patterns, or an N-by-1/N-by-2 cell array of patterns and descriptions.
titleStringScalarNo—Dialog title.
defaultNameStringScalarNo—Initial file or directory path for the dialog.
optionNameStringScalarNo"MultiSelect"Name-value option name. `MultiSelect` is supported.
optionValueAnyNo"off"`"on"`, `"off"`, or a scalar logical/numeric value.

Returns

NameTypeDescription
fileAnySelected filename, cell array of filenames for multiple selections, or 0 when cancelled.
pathAnyDirectory containing the selected file, including a trailing separator, or 0 when cancelled.
indexNumericScalarOne-based selected filter index, or 0 when cancelled.

Returned values from uigetfile depend on how many outputs the caller requests.

Errors

IdentifierWhenMessage
RunMat:uigetfile:InvalidArgumentA filter, title, default path, or name-value option has an unsupported type or shape.uigetfile: invalid argument
RunMat:uigetfile:TooManyOutputsMore than three output arguments are requested.uigetfile: too many output arguments
RunMat:uigetfile:HostErrorThe active filesystem provider fails while opening the host file-selection UI.uigetfile: file selection failed
RunMat:uigetfile:InvalidSelectionThe active filesystem provider returns a malformed or internally inconsistent file selection.uigetfile: invalid file selection

How uigetfile works

  • file = uigetfile() uses an all-files filter.
  • uigetfile(filter) accepts a character vector, string scalar, semicolon-delimited pattern list, or an N-by-1/N-by-2 cell array of patterns and descriptions.
  • uigetfile(filter, title, defaultName) forwards the dialog title and initial file or directory path to the filesystem provider.
  • uigetfile(..., 'MultiSelect', 'on') allows multiple selected files. When multiple files are selected, file is a cell array of character vectors. A single selected file is returned as a character vector.
  • The selected path output is the containing directory with a trailing path separator. The index output is the one-based selected filter index.
  • Cancellation returns numeric zero for file, path, and index, matching MATLAB. This is also the behavior for filesystem providers that do not implement an open-file picker.

GPU memory and residency

No. File-selection dialogs are host/UI operations and always execute outside GPU residency. The provider hook returns paths in the active filesystem namespace, so browser hosts that import user-selected files should map them into the mounted provider namespace before returning the path.

Examples

Select A Spreadsheet

[file, path] = uigetfile('*.xlsx', 'Select a spreadsheet');
if isequal(file, 0)
    return;
end
scores = readtable(fullfile(path, file));

Use Multiple Filters

filters = {'*.m;*.mlx', 'MATLAB files'; '*.txt', 'Text files'};
[file, path, index] = uigetfile(filters, 'Open source file');

Allow Multiple Files

[files, path] = uigetfile('*.csv', 'Select CSV files', pwd, 'MultiSelect', 'on');
if isequal(files, 0)
    return;
end

Using uigetfile with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how uigetfile changes the result.

Run a small uigetfile example, explain the result, then change one input and compare the output.

FAQ

What happens in noninteractive or headless RunMat hosts?⌄

RunMat returns the MATLAB cancellation values (0) unless the active filesystem provider implements selectFileOpen / select_file_open.

How does a browser host provide a real file picker?⌄

Install a filesystem provider with a selectFileOpen(request) function. Return null or false for cancellation, a string path for one file, an array of string paths for multiple files, or an object such as { paths: ['/data/a.csv'], filterIndex: 1 }.

Does uigetfile read the selected file?⌄

No. It only returns the selected file name and directory. Use fullfile(path, file) with readtable, fopen, load, or another file-reading builtin to consume the file.

Related Io functions

Repl Fs

addpath · cd · copyfile · delete · dir · exist · fileattrib · fileparts · fullfile · genpath · getenv · getpref · isenv · isfile · isfolder · ispref · ls · matlabroot · memmapfile · mkdir · movefile · open · opentoline · path · pathsep · pcode · pwd · readstruct · rehash · restoredefaultpath · rmdir · rmpath · run · savepath · setenv · setpref · system · tempdir · tempname · uigetdir · uiputfile · unsetenv · userpath · what · winqueryreg · xmlread · xmlwrite

Net

accept · read · readline · tcpclient · tcpserver · write

Tabular

arrayDatastore · csvread · csvwrite · detectImportOptions · dlmread · dlmwrite · fileDatastore · parquetDatastore · parquetinfo · parquetread · readcell · readmatrix · readtable · readtimetable · spreadsheetImportOptions · writecell · writematrix · writetable · writetimetable · xlsread · xlswrite

Audio

audioinfo · audioread

Io

clc · diary · disp · display · format · input

Filetext

fclose · feof · fgetl · fgets · fileread · filewrite · fopen · fprintf · fread · frewind · fwrite · readlines · writelines

Archive

gunzip · gzip · unzip

Hdf5

h5disp · h5info · h5read · h5write · h5writeatt · hdf5info · hdf5read · hdf5write

Import

importdata · textscan

Json

jsondecode · jsonencode

Mat

load · matfile · save

Http

sendmail · urldecode · urlencode · weboptions · webread · websave · webwrite

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how uigetfile is executed, line by line, in Rust.

  • View the source for uigetfile 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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.

Download RunMatOpen Sandbox
On this page
  • Syntax
  • Inputs
  • Returns
  • Errors
  • How uigetfile works
  • GPU memory and residency
  • Examples
  • Select A Spreadsheet
  • Use Multiple Filters
  • Allow Multiple Files
  • Using uigetfile with coding agents
  • FAQ
  • Related Io functions
  • Repl Fs
  • Net
  • Tabular
  • Audio
  • Io
  • Filetext
  • Archive
  • Hdf5
  • Import
  • Json
  • Mat
  • Http
  • Open-source implementation
  • About RunMat