Hi, I have a cell variable that looks like this:
I'D like to know if there is a way to transform it into a matrix of this kind:
NewVar=[2 5; 2 3; 2 5];
Thanks

 採用された回答

Walter Roberson
Walter Roberson 2020 年 2 月 14 日

0 投票

tmp = {'002,005';'002,003';'002,005'};
NewVar = cell2mat(cellfun(@(S) sscanf(S, '%f,%f').', tmp, 'uniform', 0));

その他の回答 (2 件)

Stephen23
Stephen23 2020 年 2 月 15 日

1 投票

Efficient solution:
>> C = {'002,005';'002,003';'002,005'};
>> sscanf(sprintf('%s;',C{:}),'%f,%f;',[2,Inf]).'
ans =
2 5
2 3
2 5
Sindar
Sindar 2020 年 2 月 14 日

0 投票

tmp={'002,005';'002,003';'002,005'};
NewVar=str2double(split(tmp,','))

2 件のコメント

Guido Pozzi
Guido Pozzi 2020 年 2 月 14 日
When I run this I get 'Undefined function 'split' for input arguments of type 'cell'. I'm using Matlab 2015, maybe that split function isn't available for my matlab version.
Sindar
Sindar 2020 年 2 月 14 日
strsplit might work, but you might need to loop over cells

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

タグ

質問済み:

2020 年 2 月 14 日

回答済み:

2020 年 2 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by