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
    • abs
    • angle
    • bsxfun
    • complex
    • conj
    • double
    • erf
    • erfcinv
    • exp
    • expm1
    • factorial
    • flintmax
    • gamma
    • gammaln
    • heaviside
    • hypot
    • idivide
    • imag
    • intmax
    • intmin
    • ldivide
    • log
    • log10
    • log1p
    • log2
    • minus
    • nextpow2
    • plus
    • pow2
    • power
    • rdivide
    • real
    • realmax
    • realmin
    • realsqrt
    • rescale
    • sign
    • single
    • sqrt
    • swapbytes
    • times
    • typecast
    • uint16
    • uint32
    • uint8

rescale — Scale the range of array elements in MATLAB and RunMat.

R = rescale(A) scales array values to [0,1] using the minimum and maximum over all elements of A. rescale(A,l,u) scales to [l,u], and InputMin/InputMax name-value options override the input range and clip values before scaling.

Syntax

R = rescale(A)
R = rescale(A, l, u)
R = rescale(A, Name, Value)
R = rescale(A, l, u, Name, Value)

Inputs

NameTypeRequiredDefaultDescription
AAnyYes—Input numeric or logical array.
lNumericArrayNo0Lower bound for the output interval.
uNumericArrayNo1Upper bound for the output interval.
NameStringScalarNo—Name-value option name: "InputMin" or "InputMax".
ValueAnyNo—Name-value option value.

Returns

NameTypeDescription
RNumericArrayScaled output array.

Errors

IdentifierWhenMessage
RunMat:rescale:InvalidArgumentArguments, name-value pairs, interval bounds, or input range bounds are invalid.rescale: invalid argument
RunMat:rescale:InvalidInputInput values cannot be converted to real numeric or logical arrays.rescale: invalid input
RunMat:rescale:SizeMismatchA bound array cannot be implicitly expanded with the input array.rescale: size mismatch
RunMat:rescale:InternalTensor construction, allocation, or GPU gather fails internally.rescale: internal error

How rescale works

  • The default range is computed from all elements of A, not independently by row or column.
  • The output interval bounds l and u, and the InputMin and InputMax values, can be scalars or arrays that are implicitly expandable with A.
  • Supplying vector InputMin and InputMax values supports independent row-wise or column-wise scaling while preserving MATLAB implicit expansion behavior.
  • Values below InputMin are clipped to InputMin; values above InputMax are clipped to InputMax before scaling.
  • Constant input ranges return the lower output bound, or NaN when the output interval contains Inf.
  • Single-precision tensor inputs preserve native single storage; integer and other numeric or logical inputs return double values. Every integer data or bound value must be exactly representable at this explicit floating rescaling boundary rather than being silently rounded.
  • NaN values are omitted when computing the default input range, and NaN input elements remain NaN in the corresponding output positions. All-NaN inputs produce NaN outputs.
  • Complex, string, cell, struct, object, and function-handle inputs are rejected.

Examples

Scale a vector to the unit interval

A = 1:5;
R = rescale(A)

Expected output:

R = [0 0.25 0.5 0.75 1]

Scale a vector to a custom interval

A = 1:5;
R = rescale(A,-1,1)

Expected output:

R = [-1 -0.5 0 0.5 1]

Clip to an input range before scaling

A = [-30 1 2 3 4 5 70];
R = rescale(A,"InputMin",1,"InputMax",5)

Expected output:

R = [0 0 0.25 0.5 0.75 1 1]

Scale matrix columns independently

A = [0.4 -4; 0.5 -5; 0.9 9; 0.2 1];
R = rescale(A,"InputMin",min(A),"InputMax",max(A))

Expected output:

R = [0.2857 0.0714; 0.4286 0; 1 1; 0 0.4286]

Using rescale with coding agents

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

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

FAQ

Does rescale(A) operate column-wise?⌄

No. The default range uses min(A(:)) and max(A(:)) across all elements. Use vector InputMin and InputMax values, such as min(A) and max(A), for independent column scaling.

What happens when all input values are equal?⌄

RunMat returns the lower output bound, matching MATLAB. If the requested output interval contains Inf, the result is NaN.

Can InputMin and InputMax be arrays?⌄

Yes. They may be scalars, vectors, matrices, or N-D arrays that are compatible with A under MATLAB implicit expansion rules.

Does RunMat keep rescale(gpuArray(...)) on the GPU?⌄

Yes. The current implementation may use a host round trip internally for documented argument forms, but it uploads the result back to the active provider when any operand is a gpuArray.

Related Math functions

Elementwise

abs · angle · bsxfun · complex · conj · double · erf · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · sign · single · sqrt · swapbytes · times · typecast · uint16 · uint32 · uint8

Trigonometry

acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh

Reduction

all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · mink · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var

Structure

bandwidth · isdiag · ishermitian · issymmetric · istril · istriu · symrcm

Signal

blackman · butter · buttord · cheb2ord · conv · conv2 · deconv · downsample · envelope · filter · filtfilt · fir1 · freqz · gauspuls · hamming · hann · hilbert · periodogram · pulstran · pwelch · rectpuls · resample · sawtooth · sinc · spectrogram · square · tripuls · unwrap · upsample · zplane

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref · vecnorm

Optim

coneprog · fminbnd · fminunc · fsolve · fzero · integral · linprog · lsqcurvefit · lsqnonlin · optimoptions · optimset · quad · secondordercone

Ops

cross · ctranspose · dot · mldivide · mpower · mrdivide · mtimes · pagemtimes · pagetranspose · trace · transpose

Symbolic

digits · int · limit · piecewise · sym · syms · vpa

Fft

fft · fft2 · fftn · fftshift · ifft · ifft2 · ifftn · ifftshift

Interpolation

griddedInterpolant · interp1 · interp1q · interp2 · pchip · ppval · spline

Discrete

lcm · primes

Ode

ode15s · ode23 · ode45

Poly

polyder · polyfit · polyint · polyval · roots

Open-source implementation

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

  • View the source for rescale 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 rescale works
  • Examples
  • Scale a vector to the unit interval
  • Scale a vector to a custom interval
  • Clip to an input range before scaling
  • Scale matrix columns independently
  • Using rescale with coding agents
  • FAQ
  • Related Math functions
  • Elementwise
  • Trigonometry
  • Reduction
  • Structure
  • Signal
  • Rounding
  • Factor
  • Solve
  • Optim
  • Ops
  • Symbolic
  • Fft
  • Interpolation
  • Discrete
  • Ode
  • Poly
  • Open-source implementation
  • About RunMat