如何将数字数组与字符串连接"±"?



我有两个数组,结果和错误:

Results = [ 1.0 2.2 3.5 ];
Erorrs  = [ 0.2 0.2 0.3 ];

我需要一个新的文本数组变量(可能是单元格(,它的示意图如下:

[Results(i),'$^pm$', Erorrs(i)]

(示例中有3行(

使用字符串数组,可以这样做:

s = string(Results) + char(177) + string(Erorrs);
>> s
s = 
1×3 string array
"1±0.2"    "2.2±0.2"    "3.5±0.3"

sprintf和unicode char±与char(177)一起使用

for ii = 1:numel(Erorrs)
s{ii} = sprintf('%f %c %f', Results(ii), char(177), Erorrs(ii))
end

我认为乳胶翻译在这里不起作用,尽管我不确定。

s =
1×3 cell array
{'1.000000 ± 0.200000'}    {'2.200000 ± 0.200000'}    {'3.500000 ± 0.300000'}

或者使用fprintfrn进行控制台输出。


感谢@matlabbit的评论,还有一个矢量化版本:

compose('%f %c %f', Results(:), char(177), Erorrs(:)) 

也许您可以使用strcat

E = strsplit(num2str(Erorrs))
R = strsplit(num2str(Results))
p = cell(1,3);
p(:) = "$^pm$";
s = strcat(R,p,E);

使得

s =
{
[1,1] = 1$^pm$0.2
[1,2] = 2.2$^pm$0.2
[1,3] = 3.5$^pm$0.3
}

相关内容

  • 没有找到相关文章

最新更新