1. A method for measuring an arterial blood pressure of a subject, comprising: a) detecting pulse-wave-related signals of the subject with a sensor; b) extracting a feature from the signals; c) determining factors that can affect the feature; and d) determining the arterial blood pressure based on the feature with an automatic compensation for the factors, wherein the feature is a pulse transit time and the factors comprise a contacting force to the sensor, nervous activities and/or cardiac outputs of the subject, and ambient temperatures, and wherein the step d) further comprises: 1) obtaining coefficients from a calibration process; 2) counterbalancing effects of the factors on the pulse transit time with a first compensation term; 3) determining an estimated value of the arterial blood pressure according to the result of the counterbalancing; 4) counterbalancing the effects of the nervous activities and/or cardiac outputs on the estimated value with a second compensation term; and 5) counterbalancing the effects of the ambient temperatures on the estimated value of the arterial blood pressure with a third compensation term.