Round in a cell array that also contains string

Hello everyone,
I am trying to round figures in a cell array however in that same array I also have string types. round changes the value of the string therfore I can't use formulas like
cellfun(@(x)round(x,N),c)
I mean I don't how to integrate `isnumeric` to this formula.
Is there a fomula that knows to round only numeric number?
Thank you in advance.

 Risposta accettata

Stephen23
Stephen23 il 24 Lug 2019
Modificato: Stephen23 il 24 Lug 2019
idx = cellfun(@isnumeric,C);
C(idx) = cellfun(@(x)round(x,N),C(idx),'uni',0)

3 Commenti

Thank you for your answer!
I get a
Conversion to cell from double is not possible.
from the second line..
@Jack Arnoldi: you are right, I forgot the 'UniformOutput',false. I have fixed my answer:
>> C = {1.234,'cat';'hat',5.6789}
C =
[1.234] 'cat'
'hat' [5.6789]
>> idx = cellfun(@isnumeric,C);
>> C(idx) = cellfun(@(x)round(x,2),C(idx),'uni',0)
C =
[1.23] 'cat'
'hat' [5.68]
Thank you that works perfectly!

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by