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