Convert Integer Array to String Array where repeated integers use "R" for repeated entries
3 次查看(过去 30 天)
显示 更早的评论
The question is a bit vague. An example will make this much more clear. Lets say I have the integer array A
A= [ 1 1 1 1 2 2
2 2 2 2 2 2
3 3 3 2 3 3];
My goal is to have the following array B (it can be character/cell/string) the only requirement is that I can then write B to a text file using fprintf.
B= '1 3R 2 7R 3 2R 2 3 1R';
Where "nR" repeats the preceding entry n times. I am going to be performing this on a large integer array (~ 5.0E+7 elements) so efficiency is crucial.
Thank you for your time.
0 个评论
回答(3 个)
Walter Roberson
2018-3-28
编辑:Walter Roberson
2018-3-28
sprintf('%g %dR ', [values(:), counts(:)-1].' )
or if you are sure that values and counts are row vectors,
sprintf('%g %dR ', [values; counts-1]);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!