A collection of personal MATLAB utility functions written over the years with many useful enhancements for plotting, data analysis and more.


Updated 16 Dec 2022

From GitHub

View License on GitHub


A collection of personal matlab utility functions written over the years (2001-present).

The functions that I find myself using most often and unable to live without are jisubplot/nextplot, gridx/gridy/patchx, jisuptitle, jicolorbar, nudgeAxis, insetAxis, hideAxisLabels, timestamp, the colormaps, orthoMontage, parameter, structure and string utilities, hilbert analysis, jnearest. May you find something useful here.


I suggest you clone ji_utils from github and then add ji_utils to your path. If you download from the matlab file exchange, rename the download from github_repo to ji_utils...

View ji_utils on File Exchange

JRI 7/22


blockclose              - blockclose  prevent a figure from being closed by the 'close' command
combineFigs             - combineFigs  Combine a set of figure windows into a single figure
expmulti                - expmulti  Export all plots prepared with jisubplot/nextplot.
ff                      - flipfig (ff)   flip through a set of figures
numScreens              - numScreens  return the number of displays attached to this computer
orthoMontage            - orthoMontage  make an orthogonal montage of a 3-d figure

jisubplot suite (see file exchange; predates tiledlayout by 15 years and offers a few additional benefits including figure sizing, tiling by row or column, skipping and printing axis labels only at endges of figure...

currentplotis           - currentplotis  Test if current plot pane is at a special location (e.g. row end, etc)
jisubplot               - Set up a figure for multi-pane plotting. Used with NEXTPLOT.
nextplot                - Advance to next plotting pane in figure set up with JISUBPLOT.

see also: freezecolors to allow multiple colormaps on a figure or axis (https://github.com/jiversen/freezeColors)


baroutline              - baroutline  Draw outline of a bar plot (useful for histograms) 
histoutline             - histoutline  Draw histogram outline
jierrorbar              - Error bar plot. Fixed ERRORBAR to enable proper legends (JRI 12/01)
jihist                  - jihist    more powerful histogram analysis/plotting
plotDashedError         - plotDashedError  Plot curve with error range dashed above and below
plotDisjoint            - plotDisjoint  Plot disjoint segments of a curve
plotMeanMarker          - plotMeanMarker  show triangular marker marking the mean
plotShadedError         - plotShadedError  Plot curve with error range shaded underneath
sidehist                - histoutline  Draw histogram in outline form vertically
xyerrorbar              - xyerrorbar plot points with x and y errorbars


cbal                    - cbal balance clim of plot (center on 0)
gridx                   - gridx  Plot vertical x grid lines
gridy                   - gridy  Plot horizontal y grid lines
hideAxisLabels          - Hide axis text labels (but not ticks)
insetAxes               - insetAxes  Flexible creation of inset plots. Can add an inset version of one axis onto another.
jicolorbar              - Same as COLORBAR, but does not resize current axis. (JRI)
jisuptitle              - Puts a title above all subplots. Does not resize axes (unlike suptitle).
jititle                 - jititle  JRI's version of TITLE with control of font size and location
jititlesub              - Add a title and subtitle to current axis
jixlabel                - jixlabel  JRI's version of XLABEL with control of fontsize.
jiylabel                - jiylabel  JRI's version of YLABEL with control of fontsize.
lllabel                 - Put a text label in lower left corner of a plot
nudgeAxis               - nudgeAxis Shift axis position
patchx                  - patchx   plot shaded patches on plot
plotgrid                - plotGrid  Flexible plotting of grid lines
timestamp               - Timestamp the current figure.
ullabel                 - Put a text label in upper left corner of a plot
xbal                    - xbal balance xlim of plot
xticklabel              - xticklabel    replacement for setting xticklabels directly, allowing tex strings
xyline                  - xyline draw line x=y on current figure
ybal                    - ybal balance ylim of plot
ylimall                 - ylimall make ylim of all axes in a figure the same


greenred                - Colormap: red thru black thru green, for distinguishing pos & minus
hotcold                 - Colormap: hot thru black thru cool blues, nice for distinguishing pos & minus
hotwhitecold            - HOTCOLD  Colormap: hot thru black thru cool blues, nice for distinguishing pos & minus
pastelmap               - Modified Brewer pastel 1 colormap for GUI cell backgrounds
redblue                 - Colormap: blue thru black thru red, for distinguishing pos & minus
redgreen                - REDGREEN  Colormap: green thru black thru red, for distinguishing pos & minus
redwhiteblue            - Colormap: blue thru white thru red, for distinguishing pos & minus
redwhitegreen           - REDWHITEGREEN  Colormap: green thru white thru red, for distinguishing pos & minus
revmap                  - revmap    reverse colormap


dd                      - dd  measure distances on plot
pickHarmonics           - pickHarmonics pick a frequency and display harmonics


calc_fft                - calc_fft  Calculate fft & power spectrum (convenience function)
clamp                   - clamp clamp to limits
findwin                 - findwin  special case of find for getting index of a time vector within a window
hilanal                 - hilanal   hilbert transform analysis
hilrelphase             - hilrelphase   hilbert relative phase between two signals
instfreq                - instfreq  simple instantaneous frequency (rate between peaks or zero crossings)
jifindpeaks             - findpeaks  Find time of peaks of a signal
jnearest                - jnearest   FAST find index into a collection of element nearest to a point using binary search
plot_fft                - plot_fft  plot powerspectrum of relevance to frequency tagging
plotComparison          - plotComparison(newData,oldData,t, Options...)
ppsd                    - ppsd  plot psd
relphase                - relphase  find relative phase between two time signals
zerocrossing            - zerocrossing  Find zerocrossings of a time signal


callername              - callername  get name of calling mfile
getparam                - getparam  Get values for a parameter in a parameter list
isparam                 - isparam  Check parameter list to see if given parameter was specified
isTextOnlyMatlabSession - isTextOnlyMatlabSession  test if this matlab instance can plot or is text only


copyfields              - copyfields copy a set of fields from one structure to another
flattenStruct           - flattenStruct flatten structs within struct
packstruct              - packstruct packs a set of variables into a structure
renamefield             - renamefield rename field within a struct
structarrayfun          - structarrayfun apply a function to each field of structure array across elements of struct array
unpackstruct            - unpackstruct unpacks a struct, placing new vars with same name as fields in caller's space
whoss                   - whoss show memory usage within a struct


protect_underscore      - protect_underscore  Allow underscores to display correctly w/ latex processor
strmatch_mixed          - strmatch_mixed  Like strmatch, but fixes a shortcoming:


backupfile              - backupfile    Make a timestamped backup of any file (in same dir)
fvars                   - fvars  return variables contained in a .mat file
fwhos                   - fwhos   does whos on a file
getdirs                 - getdirs  return only directories within a path, same format as dir
fullfile_mkdir          - Build full filename from parts. Ensure all subdirs exist. Mkdir if not.
newestFile              - newestFile find newest file matching a template
timestamp               - Generate timestamp string for filename.
whichdiff               - whichdiff  utility to find diff between different versions of same .m file


jireadtable             - jireadtable read a simple table from a text file
jiwritetable            - jiwritetable  write tabular data to file


linefit                 - linefit draw best fit line and show stats
sigStr                  - sigStr    generate asterisks & 'p<n' denoting levels of significance
simplestat              - simplestat display a variety of summary statistics and tests


ageAt                   - ageAt calculate age in years at a target date given the birthdate
jwhos                   - jwhos    Replacement for builtin whos--prints size of >3d arrays directly
niceround               - niceround Round a number 'up' to the nearest 'nice' one: M x 1eN, M,N int
setCommandWindowTitle   - setCommandWindowTitle  customize command window title with hostname and optional string
show_progress           - show_progress  Display progress
userhome                - userhome  user's home directory
username                - username  return current username

Cite As

John Iversen (2023). ji_utils (https://github.com/jiversen/ji_utils), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

Minor change to documentation.


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.