【问题标题】:Concatenate symbol with cell array values in Matlab在Matlab中将符号与单元格数组值连接起来
【发布时间】:2017-10-26 09:56:19
【问题描述】:

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

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

欢迎任何帮助!

【问题讨论】:

    标签: matlab symbols cell-array


    【解决方案1】:

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

    【讨论】:

    • 感谢@Luis Mendo,这是一个好的开始!并解释了为什么我不能让它工作。但是,我希望将输出存储在单元格 {1x52} 中,其中每个单元格都包含前一个单元格值,符号为“附加”。当前解决方案创建一个char类型变量{1x50}
    • 查看编辑后的答案,最后一部分。这给出了一个 char 向量元胞数组
    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2013-10-21
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多