for loop to convert cells of column to string

3 views (last 30 days)
i have a data which is a column of cells (some string and some douple), i search for some words in it
i use this code
for E=1:R % from 1 : length of columns
B=~cellfun('isempty',regexp(alldata(:,52),'BATTERY')) % search for battrey and return 1 or 0
if (B(E) == 1) % if value of array greater than or equal 1
Defs(j)=E; % save its postion (E,1)
j=j+1;
else % save all arrays didn't have 'battery' separately
not(k)=E;
k=k+1;
end
end
but i get an error
All cells must be strings.
in line B=~cellfun('isempty',regexp(alldata(:,52),'BATTERY'))
how i can run a for loop to convert all cells into double?
i use this
data= ' Nan '
data={};
data{ not( cellfun( @ischar, data ) ) } = '';
but i cant run a for loop... :(
  1 Comment
Amr Hashem
Amr Hashem on 19 May 2015
sometimes when i search for a word in a column
with the same code, i got this error Index exceeds matrix dimensions.
B=~cellfun('isempty',regexp(alldata(:,54),'BATTERY'))
it seems that some cells in the column is empty
how i can solve this

Sign in to comment.

Accepted Answer

Amr Hashem
Amr Hashem on 20 May 2015
I found this answer:
[R,C]=size(data);
H=data;
for k = 1:R
if isnan(H{k})
H{k} = '';
end
end
it was answered by Jan Simon
and it works...
thanks for you all... thanks for Jan.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!