Wrap cell values in single quote so that regexprep works

My data has strings and digits. It looks something like:
C =
{'N',[0],'Y',[75];
'Y', '75', '0','N'}
When I run
C = regexprep(C,'N','99');
I get 'Error using regexprep: All cells must be strings.'
So, I thought I should wrap everything that isn't a string in single quotes.
I tried:
for i = 1:length(C);
if ~isstr(C{i});
C{i}= sprintf('%d', C{[i]});
end
But it doesnt work. When i change {1} to {1,3} everything that wasn't a string in column 3 becomes a string, but this is inefficient because my data has >600 columns.
What can I do?
Thank you so much for your time and help!

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 16 Okt. 2012
How about:
C = cellfun(@(x)num2str(x),C,'uni',false)

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 16 Okt. 2012
Bearbeitet: Azzi Abdelmalek am 16 Okt. 2012
B= cellfun(@(x) regexprep(char(x),'N','99'),C,'un',0)

1 Kommentar

Thanks! This works as well, although it truncates the data.

Melden Sie sich an, um zu kommentieren.

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