我想知道如何将特定格式应用于新推出的string array
?
mat = [0, 0.4, 0.2 ; 0, 0.6, 0.8]
str = string(mat)
我希望得到的string array
总是显示两位小数,然后是百分号(例如sprintf('%.2f%%', str)
)。
我该怎么做?如果字符串数组不可能,char的单元格数组也同样好。
如果你有≥R2016b,你可以使用compose
。
str = compose('%0.2f%%', mat);
str =
2×3 cell array
'0.00%' '0.40%' '0.20%'
'0.00%' '0.60%' '0.80%'
对于旧版本,在我看来,使用循环(或arrayfun
)是一种直截了当的优雅方法。
res = arrayfun(@(x) sprintf('%.2f%%',x), mat,'un',0);
在这样的情况下,循环通常很好,但你可以这样做:
strread ( sprintf ( '%.2f%%\n', mat ), '%s', 'delimiter', '\n' )
但是循环更容易阅读
正如@SardarUsama所建议的那样,你也可以使它与原始变量的大小相同
reshape ( strread( sprintf ( '%.2f%%\n', mat ), '%s', 'delimiter', '\n' ), size(mat) )
P.S确实strread
不推荐在文档中 - 但我个人认为它是一个非常有用的功能! :)