在Matlab中将符号与单元格数组连接起来

时间:2017-10-26 09:56:19

标签: matlab symbols cell-array

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

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

欢迎任何帮助!

1 个答案:

答案 0 :(得分:3)

\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)