MATLAB: How to format output to exponential notation

codedecimalexponetialformat

%Additional Data
newName=input('Enter name of new component: ','s');
Name{length(Name)+1}=newName; %adding new component
newCur=input('Enter Current values corresponding to the 5 voltages for the new component in mA:');
CurData=[CurData;newCur]; %appending row of current values for new component
MaxCur=max(max(CurData(2:end,:)));
[R,C]=find(CurData(2:end,:)==MaxCur);
fprintf('Maximum Current = %d mA\n',MaxCur)
fprintf('At voltage = %.3f nV\n',CurData(1,C)*10^9) %%THIS LINE OF CODE IS THE LINE THAT I NEED TO LOOK LIKE X.XXE10
fprintf('\t For %s\n',Name{choice})
Hello! I am trying to format an answer that my code gives out at exponential notation and the line that is labeled is the line of code that i need to edit for it to do so? I have this so far which is giving me the entire number to 10^9 and i need it at X.XXE10. Any suggestions?

Best Answer

This should work:
fprintf('At voltage = %.2E nV\n',CurData(1,C)*10^9)
If you don't want the plus sign:
val = CurData(1,C)*10^9;
e = floor(log10(val));
b = val / 10^e;
fprintf('At voltage = %.2fE%02d nV\n', b, e);