fprintf for logical statement
Ältere Kommentare anzeigen
im trying to write a single code for an fprintf.
Say I have x=1.9712 nh=0.3224 converged=true (or sometimes false)
I have written so far
fprintf('x is %d nh is %d converged is %d./n',x,nh,converged)
which results in, x is 1.971166e+00 nh is 3.223800e-01 converged is 1./nK>>
If converged=true, I would like it to say something like x is 1.971.. nh is 3.223... convergence achieved converged=true
If converged is false I would like it to say something like x is 1.971.. nh is 3.223... convergence not achieved converged=false
The fprintf is being called in a loop I would like each time its called to have it written on a new line in the command window because now it produces on the same line.
Thanks for the help.
Akzeptierte Antwort
Weitere Antworten (4)
Christophe LB
am 6 Feb. 2018
Bearbeitet: Christophe LB
am 6 Feb. 2018
Also a late answer but "mat2str" does the trick easily.
>> fprintf('x is %d nh is %d converged is %s.\n',x,nh,mat2str(converged))
x is 1.971200e+00 nh is 3.224000e-01 converged is true.
1 Kommentar
Stephen23
am 6 Feb. 2018
+1 neat and simple
Thomas Schmidt
am 23 Dez. 2017
I know its a late answer, but maybe someone else is searching for this.
So, mostly i am using 'string (x)' to convert a logical into a string (true / false).
example:
>> a = true
a =
logical
1
>> string (a)
ans =
"True"
1 Kommentar
extra tip if your variable might be 0/1 instead of false/true:
string(~~a)
Steven Lord
am 30 Nov. 2015
I don't believe there's a specifier that makes the logical values print out as their string representations. You will need to define a variable that contains the string representation.
if converged
status = 'true';
else
status = 'false';
end
and print that string using %s instead of the last %d. As for the newline, change /n to \n in your call.
Pedro Busc
am 26 Mai 2017
0 Stimmen
This is so LAME, matlab should convert it internally.
1 Kommentar
Sorry, what? What is lame? Do you have a runtime issue with this method? Do you want fprintf to display 'true', when a logical value is provided? But this is not the way the fprintf library works. If is based on the same base functions as the C version.
The suggest methods have the benefit, that they can show 'true', 'True', 'TRUE', 'On', 'Yes', 'Enabled' or what ever.
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!