How can I convert matrix to cell array of strings?

1 visualizzazione (ultimi 30 giorni)
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 Commento
Stephen23
Stephen23 il 19 Set 2024
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)'}

Accedi per commentare.

Risposta accettata

OCDER
OCDER il 3 Ott 2017
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)'

Più risposte (1)

KSSV
KSSV il 3 Ott 2017
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))

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by