The complex transverse water proton magnetization subject to diffusion-encoding magnetic field gradient pulses in a heterogeneous medium can be modeled by the multiple compartment Bloch-Torrey partial differential equation (BTPDE). A mathematical model for the time-dependent apparent diffusion coefficient (ADC), called the H-ADC model, was obtained recently using homogenization techniques on the BTPDE. Under the assumption of negligible water exchange between compartments, the H-ADC model produces the ADC of a diffusion medium from the solution of a diffusion equation (DE) subject to a time-dependent Neumann boundary condition. This paper describes a publicly available Matlab toolbox called SpinDoctor that can be used 1) to solve the BTPDE to obtain the dMRI signal (the toolbox provides a way of robustly fitting the dMRI signal to obtain the fitted ADC); 2) to solve the DE of the H-ADC model to obtain the ADC; 3) a short-time approximation formula for the ADC is also included in the toolbox for comparison with the simulated ADC. The PDEs are solved by P 1 finite elements combined with build-in Matlab routines for solving ordinary differential equations. The finite element mesh generation is performed using an external package called Tetgen that is included in the toolbox. SpinDoctor provides built-in options of including 1) spherical cells with a nucleus; 2) cylindrical cells with a myelin layer; 3) an extra-cellular space (ECS) enclosed either a) in a box or b) in a tight wrapping around the cells; 4) deformation of canonical cells by bending and twisting. 5) permeable membranes for the BT-PDE (the H-ADC assumes negligible permeability). Built-in diffusion-encoding pulse sequences include the Pulsed Gradient Spin Echo and the Oscilating Gradient Spin Echo.