fprintf(vg, 'vMIN = %f',vMIN);
fprintf(vg, 'vMAX = %f',vMAX);
fprintf(vg, 'vstep = %f',vstep);
fprintf(vg, 'numPoints = %f',steps +1);
fprintf(vg, 'VG = %f',vGate);
xx=max(abs([vMAX vMIN]));
fprintf(vg,'smua.source.rangev= %f', xx);
fprintf(vg,'smub.source.rangev= %f', vGate)
fprintf(vg, 'smua.source.levelv =0');
fprintf(vg, 'smub.source.levelv =0');
fprintf(vg,'loadscript vd_id')
fprintf(vg,'smub.source.output = smub.OUTPUT_ON');
fprintf(vg,'smua.source.output = smua.OUTPUT_ON');
fprintf(vg,'for j=1,2 do');
fprintf(vg,'smub.source.levelv = VG/2*j');
fprintf(vg,'delay(2E-5)')
fprintf(vg,'smua.measure.autozero = smua.AUTOZERO_AUTO');
fprintf(vg,'smub.measure.autozero = smub.AUTOZERO_AUTO');
fprintf(vg, 'for j=1,2*numPoints-1 do');
fprintf(vg, 'if j<(numPoints)/2 then');
fprintf(vg, 'smua.source.levelv = (vMIN+vMAX)/2 - (j-1)*vstep');
fprintf(vg, 'elseif j>3*(numPoints-1)/2 then');
fprintf(vg, 'smua.source.levelv = (vMIN+vMAX)/2 + (2*numPoints-1-j)*vstep');
fprintf(vg, 'smua.source.levelv = vMIN + (j-(numPoints-1)/2-1)*vstep');
fprintf(vg, 'smua.measure.iv(ibuffer,vbuffer)');
fprintf(vg, 'smub.measure.iv(igbuffer,vgbuffer)');
fprintf(vg,'for j=1,2 do');
fprintf(vg,'smub.source.levelv = VG-VG/2*j');
fprintf(vg,'delay(2E-5)')
fprintf(vg,'smub.source.output = smub.OUTPUT_OFF');
fprintf(vg,'smua.source.output = smua.OUTPUT_OFF');
fprintf(vg, 'endscript');
status = fscanf(vg, '%d');
fprintf(vg, 'printbuffer(%d, %d, ibuffer.readings)',[1 2*steps+1])
while (length(temp) == 0)
temp = regexprep(temp, ',', ' ');
i_list(:,1) = sscanf(temp, '%f');