converting specific string variables to double

2 views (last 30 days)
Dear all,
I have the following matrix
A={'name'
'afsaf'
'sfsfs'
'0'
'rpytui'
'0'
'0'
'0'
'dfgl'
'trd'
};
I want to convert the zeros which are string variables to numeric variables; that is
A={'name'
'afsaf'
'sfsfs'
[0]
'rpytui'
[0]
[0]
[0]
'dfgl'
'trd'
};
Is there a way of doing that?
Thanks in advance!

Accepted Answer

the cyclist
the cyclist on 15 Jun 2013
I knew there was an easier way:
A(ismember(A,'0'))={0}

More Answers (3)

Jan
Jan on 17 Jun 2013
A(strcmp(A, '0')) = {0}
  1 Comment
Azzi Abdelmalek
Azzi Abdelmalek on 17 Jun 2013
This is faster
A=repmat(A,100000,1);
tic
A(ismember(A,'0'))={0};
toc
tic
A(strcmp(A, '0')) = {0};
toc
Elapsed time is 0.047910 seconds.
Elapsed time is 0.012593 seconds.

Sign in to comment.


the cyclist
the cyclist on 15 Jun 2013
I am quite sure there is a simpler way, but one way is
A(cellfun(@(x)isequal(x,'0'),A))={0};

Azzi Abdelmalek
Azzi Abdelmalek on 15 Jun 2013
Edited: Azzi Abdelmalek on 15 Jun 2013
A(~cellfun('isempty',strfind(A,'0')))={0}

Categories

Find more on Numeric Types in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!