In MATLAB, any one primitive line object, or any one mesh or surface or patch's edge, has constant width. You can do a bit with arrow heads, but not very much, really.
A line can be broken up into line segments that are created with individual line object, each of which is a constant size. But if you have widths computed according to the value associated with a point, then you need to decide how you are going to compute the width between the point and the previous point, or the point and the next point.
About the only way I can think of to get variable thickness of lines is to use patch objects to draw the lines, using trapazoids, such as (x1, y1+width1/2) to (x2, y2+width2/2) to (x2, y2-width2/2) to (x1, y1-width1/2) back to (x1, y1+width1/2) and color that face with the color to be associated with the line.
There is a file exchange contribution for drawing lines with variable color by using patches, that you could probably adapt.