MATLAB Answers

converting specific string variables to double

4 views (last 30 days)
antonet
antonet on 15 Jun 2013
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!

  0 Comments

Sign in to comment.

Accepted Answer

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

  1 Comment

Sign in to comment.

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};

  0 Comments

Sign in to comment.


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

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags