【发布时间】:2017-10-26 09:56:19
【问题描述】:
我有一个双 {52x1} 单元格,我想将符号 ± 连接到每个元素。
我遇到的问题是 sprintf 不支持 Matlab 代码 \pm 来调用符号。
欢迎任何帮助!
【问题讨论】:
标签: matlab symbols cell-array
我有一个双 {52x1} 单元格,我想将符号 ± 连接到每个元素。
我遇到的问题是 sprintf 不支持 Matlab 代码 \pm 来调用符号。
欢迎任何帮助!
【问题讨论】:
标签: matlab symbols cell-array
\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)
【讨论】: