File Exchange

image thumbnail


version 1.8 (4.68 KB) by

Plot the Kaplan-Meier estimation of the survival function



View License

Survival times are data that measure follow-up time from a defined starting point to the occurrence of a given event, for example the time from the beginning to the end of a remission period or the time from the diagnosis of a disease to death. Standard statistical techniques cannot usually be applied because the underlying distribution is rarely Normal and the data are often ‘censored’. A survival time is described as censored when there is a follow-up time but the event has not yet occurred or is not known to have occurred. For example, if remission time is being studied and the patient is still in remission at the end of the study, then that patient’s remission time would be censored. If a patient for some reason drops out of a study before the end of the study period, then that patient’s follow-up time would also be considered to be
censored. The survival function S(t) is defined as the probability of surviving at least to time t. The graph of S(t) against t is called the survival curve. The Kaplan–Meier method can be used to estimate this curve from the observed survival times without the assumption of an underlying probability distribution. This function uses the vectorization technique.

My profile on LinkedIN

Comments and Ratings (6)

Xiaoya Li

Elaine Fang


Jiao (view profile)

Sometimes this function fails to plot the survival curve reporting such error: "CAT arguments dimensions are not consistent." "Error in ==> kmplot at 240 str2=['Median time ' num2str(mt)]; %string for LEGEND function".

Giuseppe Cardillo

usually you dont exaclty know when a subject really is censored (in example: a patient died between to follow-up points or a patient that decided to not present himself to follow-up). So the best "graphical" choice is to divide the space between to points in to N+1 segments (where N is the censored data between T1 and T2) and to plot a cross for each segments.

I noticed that the time of censoring is not plotted correctly. I could not fix it. Could you maybe help?

serves the purpose - thanks a lot!



fixed a bug into "input error handling" section


function for hazard rate computation was changed to avoid NaN in non linear fit.
Now is possible to choose how to plot censored data: if spreades along period or at period of observation.


Hazard rate computation added


Changes in description


improvement for censored data


error correction in confidence curve trimming


The function was adapted to be recalled by LOGRANK function (a function of mine). More vectorization.


help section change to correctly cite this file; median time computation was changed (in some cases there is not median time)

MATLAB Release
MATLAB 7.6 (R2008a)

Inspired: MatSurv

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video