在 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)
我有一个双 {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)