变量作为字符串中的指数八度

问题描述

对于一个练习,我必须在八度音阶中创建一个函数 x^i 从 i=1 到 i=10 的动画图。绘图必须有一个动态的标题,曲线的颜色必须改变。目前我的代码如下:

function exercicequatorze
  x=linspace(0,1,100);
for i=1:10
  plot(x,x.^i,'color',[i/10,1-i/10])
  a=num2str(i);
  title(["Le graphe de la fonction x^",a] )
  pause(1)
endfor
endfunction

而且它的表现与预期的差不多,我什至惊讶地在我的标题中得到 x¹、x²、x³、... 而不是 x^1、x^2 等等。但是,在最后一个图中,我的标题以 x¹0 而不是 x¹⁰ 结尾。关于如何解决这个问题的任何想法?我试着摆弄花括号,但我要么得到一个语法错误,要么应该是我的指数的数字被转移到标题中的第二行。

解决方法

您需要将数字放在花括号中。

title(["Le graphe de la fonction x^{" a "}"])

documentation中有解释:

如果 '^''_' 后跟 { 字符,则 { } 对包围的所有块都带有上标或下标。如果没有 { } 对,只会更改紧跟在 '^''_' 之后的字符。