MATLAB Answers

Input a variable into a plot title

3,647 ビュー (過去 30 日間)
Luke
Luke 2014 年 9 月 10 日
コメント済み: Alan Keenan 2020 年 5 月 21 日
I've trawled through these forums and found loads on inputting variables as titles, however, none of them work for me. Im trying to change the title of a plot with respect to a parameter the user will enter in the function. First i call a string for example
str = sprintf('just an example of %d that isnt working', variable)
title(str)
However only the 'just an example of' is printed out on the title of the plot, everything after and including the variable has dissapeared, this happens when i move the variable about in the title too.
Cheers!

  3 件のコメント

Star Strider
Star Strider 2014 年 9 月 10 日
Your code works perfectly for me (R2014a) with the string you posted. I can’t reproduce the error you report.
Soumitra Vadnerkar
Soumitra Vadnerkar 2017 年 9 月 26 日
How about this, given in help documentation:
figure
plot((1:10).^2)
f = 70;
c = (f-32)/1.8;
title(['Temperature is ',num2str(c),' C'])
Alan Keenan
Alan Keenan 2020 年 5 月 21 日
The answer given by Soumitra Vadnerkar works well for me.

サインインしてコメントする。

採用された回答

Steven Lord
Steven Lord 2019 年 5 月 22 日
With the introduction of the string array in release R2016b (and the ability to enclose text data in double quotes to create a string in release R2017a) you can also use:
plot((1:10).^2)
f = 70;
c = (f-32)/1.8;
title("Temperature is " + c + " C")

  0 件のコメント

サインインしてコメントする。

その他の回答 (2 件)

Adam
Adam 2014 年 9 月 10 日
title( ['just an example of ' num2str( variable ) ' that isnt working'] )
Does that work?

  8 件のコメント

表示 5 件の古いコメント
Walter Roberson
Walter Roberson 2017 年 2 月 14 日
Dayan Guerra comments to Adam
Thank you, this is the only way I can it work, the sprintf() version is not working at all on mt2013
Walter Roberson
Walter Roberson 2017 年 2 月 14 日
sprintf() would work fine in R2013* . However, the example given
str = sprintf('just an example of %d that isnt working', variable)
would be best for the case where the variable is an integer. If you have a variable that is numeric but not an integer, you would use a %e or %f or %g format.
Adam
Adam 2017 年 2 月 14 日
sprintf is definitely a neater approach. Back in 2014 I was less familiar with using sprintf so it didn't spring to mind for this!

サインインしてコメントする。


MathWorks Support Team
MathWorks Support Team 2019 年 5 月 22 日
How about this, given in help documentation:
plot((1:10).^2)
f = 70;
c = (f-32)/1.8;
title(['Temperature is ',num2str(c),' C'])

  1 件のコメント

MathWorks Support Team
MathWorks Support Team 2019 年 5 月 22 日
Thanks Soumitra Vadnerkar for this answer.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by