image thumbnail

MATLAB variable dependency analyzer (beta)

version 1.0.0.0 (190 KB) by Hikaru Ikuta
Visualize the dependency graph of variables in the entire MATLAB project with Graphviz

240 Downloads

Updated 09 Sep 2015

From GitHub

View license on GitHub

## Features
This tool creates a graph of variable dependencies in MATLAB projects, intended for exploring a new MATLAB project, debugging, etc. You can arbitrarily specify the variable of interest, depth of the graph, variables to exclude from the result (since drawing all variables makes the output unreadable), mark specified variables with a different color, etc.
The statement

A(B(1:N)) = func(a,b,c) + exp(D)

creates edges and nodes in the dependency graph

A <- B, N, func, a, b, c, exp, D

A similar tool, m2html, creates a dependency graph (script call relationship) of *.m files. This tool tries to go one step further and draw a graph of the dependency of variables.

This tool can be used to track down the cause of unwanted NaN, Inf, complex numbers etc. in your MATLAB project. The attatched `checkvars.m` is a simple assertion checker that detects NaN variables and outputs a list. You can specify and mark such variables with a different color, or exclude such variables from the result for smooth analysis.

This tool has a very simple implementation and still has many limitations, since it mostly only recognizes basic assignment statements.

## Usage
1. Place all *.m files in the same directory as this file
2. Call `vargraph.py -r <myvar>` from the terminal (multiple vars, maximum graph depths can be specified)
Please refer to the GitHub repo or the README for details.

## What it can do
- Analyze assignment statements
- Increment variables used in for loops are marked separately (with a blue color)
- Recognize assignments of global variables edited in function files (they are counted as dependencies)
- Recognize function names declared as .m files and mark them separately (with a yellow color)

## What it cannot do (TODO)
- Analyze multiple variable assignments (which is quite fatal...)
- Analyze the dependency of function arguments and its outputs
- Analyze nested function declerations
- Analyze class files and structs

## References
Example images were generated using "Newton-Raphson Loadflow" by PRAVI (2008), http://www.mathworks.com/matlabcentral/fileexchange/21059-newton-raphson-loadflow

Cite As

Hikaru Ikuta (2021). MATLAB variable dependency analyzer (beta) (https://github.com/woodrush/MATLABvargraph), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015a
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!
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.