我有两个数组,结果和错误:
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'}
或者使用fprintf
和rn
进行控制台输出。
感谢@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
}