在 Matlab 中将符号与元胞数组值连接起来

Concatenate symbol with cell array values in Matlab

我有一个双 {52x1} 的单元格,我想将符号 ± 连接到每个元素。

我遇到的问题是 sprintf 不支持调用符号的 Matlab 代码 \pm。

欢迎任何帮助!

\pm 是一个 TeX/LaTeX 命令,只有当 Matlab 使用的解释器理解 LaTex 时,它才会给出 ±。当 TickLabelInterpreter 属性 设置为 'tex'.

时,例如在轴标签中会发生这种情况

sprintf中可以直接使用±符号(代码点177)。例如,

x = num2cell(rand(5,1)); % cell array of numbers
sprintf('±%f\n', [x{:}])

sprintf([177 '%f\n'], [x{:}])

给予

ans =
±0.126987
±0.913376
±0.632359
±0.097540
±0.278498

请注意,我必须将数字元胞数组转换为数值向量才能将其传递给 sprintf。考虑将数据直接定义为数值向量以避免该步骤。


如果您想要一个字符串元胞数组作为结果:

cellfun(@(t) sprintf([177 '%f\n'], t), x, 'UniformOutput', false)