How to replace matrix NaN with string from cell array
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Johnny Birch
el 1 de Oct. de 2018
Editada: Johnny Birch
el 1 de Oct. de 2018
I have a cell array of strings which includes some unmarked numbers and some marked with '#':
cell = { '# 2.537' '1.219' '0.457' '0.214' '# 0.120' '0.245' '3.244' '# 1.400' '0.649' '0.515' '0.207' '0.075'}
I want to convert the cell to a data matrix and do some calculations for instance multiply with 2:
data=str2double(cell)*2
This will leave the numbers marked by '#' with the 'NaN'. Finally, I want two things where I need some help: 1) replace the 'NaN' with the original numbers marked with '#', for instance '# 2.537' into data(1,1), and 2) convert the data matrix into a cell array of strings. The order of step 1 and 2 is not important.
the output should be:
output = { '# 2.537' '2.438' '0.914' '0.428' '# 0.120' '0.490' '6.488' '# 1.400' '1.298' '1.030' '0.414' '0.150'}
Thanks in advance
0 comentarios
Respuesta aceptada
Stephen23
el 1 de Oct. de 2018
Editada: Stephen23
el 1 de Oct. de 2018
C = {'# 2.537','1.219','0.457','0.214','# 0.120','0.245';'3.244','# 1.400','0.649','0.515','0.207','0.075'};
mat = str2double(C);
idx = ~isnan(mat);
vec = 2*mat(idx); % your calculation
C(idx) = arrayfun(@num2str,vec,'uni',0)
1 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!