String 如何将数字数组与“连接”±&引用;一串
我有两个数组,结果和错误:String 如何将数字数组与“连接”±&引用;一串,string,matlab,String,Matlab,我有两个数组,结果和错误: Results = [ 1.0 2.2 3.5 ]; Erorrs = [ 0.2 0.2 0.3 ]; 我需要一个新的文本数组变量(可能是cell),它的示意图如下所示: [Results(i),'$^\pm$', Erorrs(i)] (示例中有3行)使用sprintf和unicode字符±withchar(177) 我认为Latex解释器在这里不起作用,尽管我对此不确定 或者将fprintf与\r\n一起用于控制台输出 感谢@matlabbit的评论,
Results = [ 1.0 2.2 3.5 ];
Erorrs = [ 0.2 0.2 0.3 ];
我需要一个新的文本数组变量(可能是cell),它的示意图如下所示:
[Results(i),'$^\pm$', Erorrs(i)]
(示例中有3行)使用
sprintf
和unicode字符±withchar(177)
我认为Latex解释器在这里不起作用,尽管我对此不确定
或者将
fprintf
与\r\n
一起用于控制台输出
感谢@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
}
使用数组,可以按如下方式执行:
s = string(Results) + char(177) + string(Erorrs);
这很管用!谢谢你,什么?什么不起作用?你真的想打印
\pm
?是的,可能吗?@MichaelL。这实际上比我想象的要容易,看看我的编辑器,你可以使用compose将sprintf矢量化。撰写(“%F±%F”,结果‘,Erorrs’)请考虑接受其中一个答案,以表明您的问题已经解决。非常感谢。s=结果+“±”+Erorrs;将是相同的行为,并节省一些打字。@我建议不要使用matlabbit。在使用ANSI或其他类似不支持编码的平台上,保存在m文件中的文件会把它搞砸。
s =
{
[1,1] = 1$^pm$0.2
[1,2] = 2.2$^pm$0.2
[1,3] = 3.5$^pm$0.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"