MATLAB Simulink fprintf logical values
34 views (last 30 days)
May I know what is the suitable formatSpec for type 'logical'? I am running this in Simulink, Matlab 2014a.
a1 = (u > min_u); fileID = fopen('C:\Users\Desktop\myfile.txt','a'); printing = '(u > min_u) = %s'; fprintf(fileID,printing, a1); fclose(fileID);
But this returns: "An argument corresponding to the conversion character 'u' in the 'formatSpec' parameter is of type 'logical'. For code generation cast this input to 'uint8', 'uint16', 'uint32' or 'uint64'."
I have tried all possible formatSpecs as in http://www.mathworks.co.uk/help/matlab/ref/fprintf.html, but I received similar errors.
Please help. Thank you.
Michael Haderlein on 25 Aug 2014
I think the easiest way is to write a tiny subfunction which converts a logical true and a false to the strings "true" and "false".
Then, the statement is fprintf(fileID,printing,log2str(a1)); Your printing format is fine then.