more than one input in sprintf

Hye, I would like to put two argument in sprintf.
I tried:
sprintf('mu=%s ,nu/omega=%s',mu1,q)
but it doesn't work, only the first one is assigned.

4 件のコメント

Liber-T
Liber-T 2011 年 7 月 19 日
The problem seams to be in this then:
FigH = figure;
set(FigH, 'NumberTitle', 'off','Name', sprintf('mu=%s ,nu/omega=%s',mu1,q));
Sean de Wolski
Sean de Wolski 2011 年 7 月 19 日
That also works fine for me.
what does:
class(mu1)
class(q)
return?
Liber-T
Liber-T 2011 年 7 月 19 日
double, for both.
Sean de Wolski
Sean de Wolski 2011 年 7 月 19 日
that is your issue - they're doubles not strings. So you should be using %f or %g in your sprintf statement instead of %s which indicates class char. See both Walter's and my suggestions below.

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

 採用された回答

Sean de Wolski
Sean de Wolski 2011 年 7 月 19 日

0 投票

Works for me...
mu1 = 'hello world'
q = '78'
sprintf('mu=%s ,nu/omega=%s',mu1,q)
Remember you're calling it as a string so mu1 and q both have to be strings
Use %f or %g etc. for numbers that are not strings or convert the numbers to string using num2str
doc sprintf

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2011 年 7 月 19 日

0 投票

That should work fine, provided that mu1 and q are both strings already.
Perhaps you want
sprintf('mu=%g, nu/omega=%g\n', mu1, q)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by