Analog memristors enable compact neuromorphic computing with low power consumption. One of the issues with the technology is slow precise analog data programming. In this study, a novel analog data programming method utilizing a self-limited set switching is proposed. The method can transfer any resistance values from reference resistors to the target memristor accurately inside a crossbar array by performing an appropriate voltage clocking. An ideal memristor model based on the method is proposed and a Ti-doped NbOx charge trap memristor is evaluated as a promising candidate for applications. The characteristic error of the Ti-doped NbOx memristor device is about 5% on average, compared to the ideal memristor, and configuring optimum parallel resistors in the circuit further improves this to 2.95%. The method is then applied to program a memristive neural network and this error is confirmed negligible; thus the proposed method is viable.