Plot title sprintf format pi
33 ビュー (過去 30 日間)
古いコメントを表示
Nick Papanikolaou
2015 年 12 月 23 日
コメント済み: DEBARSHI MAJUMDER
2020 年 3 月 11 日
How can I display on a plot's Title the input value pi with Greek character "π" or in English "pi". For example: prompt = 'What is the original value? '; x = input(prompt) I insert the value pi/2 So i want the plot title to be like: Output=π/2 I used the following code but it keeps giving me the value 0.707 instead of the π/2 or pi/2 i want.
str = sprintf('Output x=%d',x);
title(str);
0 件のコメント
採用された回答
Kirby Fears
2015 年 12 月 23 日
編集済み: Kirby Fears
2015 年 12 月 23 日
x is a double-precision floating point number. It will be displayed as a decimal by default. You can control how the double is represented (like scientific notation), but there is no built-in ability to display a double in terms of pi multiples. You're specifically trying to represent x in terms of pi/n for the appropriate n value.
Use the '\pi' character to display the symbol for pi. Calculate the value n = pi/x to build the expression "x = pi/n" in the title.
str = sprintf('Output x=%s/%d','\pi',pi/x);
title(str);
4 件のコメント
Kirby Fears
2015 年 12 月 24 日
編集済み: Kirby Fears
2015 年 12 月 24 日
To make it look really nice, you'll need a bit of case handling to insert \pi into the proper position.
x = pi * 3/4;
R = strtrim(rats(x/pi));
idxFrac = strfind(R,'/');
if isempty(idxFrac),
if strcmp(R,'0'),
fracStr = '0';
elseif strcmp(R,'1'),
fracStr = '\pi';
elseif strcmp(R,'-1'),
fracStr = '-\pi';
else
fracStr = [R,'\pi'];
end
else
leftStr = R(1:idxFrac-1);
rightStr = R(idxFrac:end);
if strcmp(leftStr,'1'),
fracStr = ['\pi' rightStr];
elseif strcmp(leftStr,'-1'),
fracStr = ['-\pi' rightStr];
else
fracStr = [leftStr '\pi' rightStr];
end
end
titleStr = sprintf('Output x = %s',fracStr);
% plot(...);
title(titleStr);
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Labels and Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!