when i try my code ( search for a word in a cells of column), i use :
% search for "battery" in column 52th
B=~cellfun('isempty',regexp(alldata(:,52),'BATTERY'))
i got an error : All cells must be strings.
B=~cellfun('isempty',regexp(alldata(:,52),'BATTERY'))
how i can solve this?
note: the column contain a texts but some cells is empty or contain NaN

 Akzeptierte Antwort

per isakson
per isakson am 19 Mai 2015
Bearbeitet: per isakson am 19 Mai 2015

1 Stimme

NaN is double
>> class( nan )
ans =
double
replace Nan by '' (empty string)
>> alldata = {'abc', nan, 'def'}
alldata =
'abc' [NaN] 'def'
>> alldata{ not( cellfun( @ischar, alldata ) ) } = '';
>> alldata
alldata =
'abc' '' 'def'

2 Kommentare

Amr Hashem
Amr Hashem am 19 Mai 2015
how i can do a for loop on a column of cells which some are not string to make them string
per isakson
per isakson am 20 Mai 2015
Bearbeitet: per isakson am 20 Mai 2015
>> alldata{ not( cellfun( @ischar, alldata ) ) } = '';
does that. Why use a loop?
any_string_value = 'abc';
for jj = 1 : length( alldata )
if not( ischar( alldata{jj} ) )
alldata{jj} = any_string_value;
end
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by