Asked by 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!

*No products are associated with this question.*

Answer by the cyclist
on 15 Jun 2013

Accepted answer

I knew there was an easier way:

A(ismember(A,'0'))={0}

Answer by Jan Simon
on 17 Jun 2013

A(strcmp(A, '0')) = {0}

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.

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

Answer by Azzi Abdelmalek
on 15 Jun 2013

Edited by Azzi Abdelmalek
on 15 Jun 2013

A(~cellfun('isempty',strfind(A,'0')))={0}

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments