sprintf with latex problem

조회 수: 223 (최근 30일)
xtremecheez
xtremecheez 2018년 3월 29일
댓글: Amirali Kamalian 2019년 12월 30일
I just cannot figure out what the problem is with this line, please help. I get this warning sometimes:
Warning: Error updating Text.
Character vector must have valid interpreter syntax:
$ρ_t = 0.26ρ_f, θ_0 = 90°$
Regardless, the subscripts never take. Here is the problematic line:
title(sprintf('$%c_t=%.2f%c_f,%c_0=%2.0f%c$',961,idens,961,952,iang*180/pi,176),'Interpreter','latex');

채택된 답변

Walter Roberson
Walter Roberson 2018년 3월 29일
latex cannot have any characters with position greater than 255. That is violated by your 961 (rho) and 952 (theta).
Use \rho and \theta
  댓글 수: 3
Walter Roberson
Walter Roberson 2018년 3월 29일
The degree character is causing the problem. Use ^{\circ}
xtremecheez
xtremecheez 2018년 3월 29일
That was it, thanks.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Amirali Kamalian
Amirali Kamalian 2019년 12월 30일
편집: Amirali Kamalian 2019년 12월 30일
I have a problem quite similar to this:
pltt = '%1.0u: %4u $^{\circ}$C, %4u kg/h';
...
title(sprintf(pltt, j, T, Q),'FontSize', 12,'Interpreter','latex')
When executing this code, I get the following warning:
"String scalar or character vector must have valid interpreter syntax". Furthermore,
"Warning: Escaped character '\c' is not valid."
Any ideas how to fix this?
  댓글 수: 2
Stephen23
Stephen23 2019년 12월 30일
You forgot to escape the backslash, i.e. \\circ instead of \circ. This is because you are supplying pltt as the format string to sprintf, so any special characters in it that you want to be treated as literal characters will need to be escaped: you should always check the output of sprintf before using it.
Amirali Kamalian
Amirali Kamalian 2019년 12월 30일
Thanks Stephen!

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by