How can I convert matrix to cell array of strings?

1 次查看(过去 30 天)
I want to convert the following:
mat = [1 2 3; 4 5 6 ; 7 8 9];
into the following array of strings,
arr = {'1,2(3)', '4,5(6)', '7,8(9)'};
How can I do that?
  1 个评论
Stephen23
Stephen23 2024-9-19
Since R2016b:
mat = [1,2,3; 4,5,6; 7,8,9];
compose('%u,%u(%u)',mat)
ans = 3x1 cell array
{'1,2(3)'} {'4,5(6)'} {'7,8(9)'}

请先登录,再进行评论。

采纳的回答

OCDER
OCDER 2017-10-3
You could use sprintf.
mat = [1 2 3; 4 5 6 ; 7 8 9];
arr = cell(1, size(mat, 1));
for k = 1:numel(arr)
arr{k} = sprintf('%d,%d(%d)', mat(k,:));
end
arr =
'1,2(3)' '4,5(6)' '7,8(9)'

更多回答(1 个)

KSSV
KSSV 2017-10-3
mat = [1 2 3; 4 5 6 ; 7 8 9];
arr = {'1,2(3)', '4,5(6)', '7,8(9)'};
nx = size(mat,1) ;
iwant = strcat(num2str(mat(:,1)),',',num2str(mat(:,2)),repelem('(',nx,1),num2str(mat(:,3)),repelem(')',nx,1))

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by