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!

 채택된 답변

Sean de Wolski
Sean de Wolski 2012년 10월 16일
How about:
C = cellfun(@(x)num2str(x),C,'uni',false)

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 10월 16일
편집: Azzi Abdelmalek 2012년 10월 16일
B= cellfun(@(x) regexprep(char(x),'N','99'),C,'un',0)

댓글 수: 1

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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

2012년 10월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by