How can I convert matrix to cell array of strings?

1 回表示 (過去 30 日間)
Ba Ba Black Sheep!
Ba Ba Black Sheep! 2017 年 10 月 3 日
コメント済み: Stephen23 2024 年 9 月 19 日
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 Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by