text matrix to scaler matrix

1 次查看(过去 30 天)
min ho lee
min ho lee 2013-12-23
Hello I have a matrix such that each cell is a string of numbers example ['10 11 12 13 ';'1 2 3']. I want to convert it into a matrix as[ 10 11 12 13;1 2 3 0]. This matrix contains a text file attachment.I used the function str2num for small matrices but My main work with matrices that have more than one million rows. thank you
kind regards
  2 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2013-12-23
Are you sure it's {'10 11 12 13';'1 2 3'} and not {'10 11 12 13' ;'1 2 3 0'}?
min ho lee
min ho lee 2013-12-23
Yes, I'm sure. I've attached the input and output matrices. Output matrix was created by hand, but for large data sets it is not logical.

请先登录,再进行评论。

回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2013-12-23
v= {'10 11 12 13 ';'1 2 3 0'}
a=cellfun(@(x) cellfun(@str2double,regexp(x,'\d+','match')),v,'un',0);
out=cell2mat(a)
  1 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2013-12-23
v= {'10 11 12 13 ';'1 2 3 '}
a=cellfun(@(x) cellfun(@str2double,regexp(x,'\d+','match')),v,'un',0);
n=max(cellfun(@numel,a));
out=cell2mat(cellfun(@(x) [x zeros(1,n-numel(x))],a,'un',0))

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by