replace specific commas using strrep
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Lukas Netzer
el 5 de Ag. de 2021
Comentada: Stephen23
el 6 de Ag. de 2021
I converted my data:
'[[0, 145, 0], [145, 169, 1], [169, 1693, 3], [1693, 1708, 1], [1708, 2729, 3], [2729, 2779, 0]]'
using str2num.
Now I can use strrep to remove certain characters. I want to replace commas outside of the square brackets with semicolons and then remove all square brackets.
I know how to remove the brackets, but am not sure how to replace certain commas and leave the others. That's what I would use to remove the brackets:
b=strrep(data,']','');
b=strrep(data,'[','');
The final output should look like that:
'0, 145, 0; 145, 169, 1; 169, 1693, 3; 1693, 1708, 1; 1708, 2729, 3; 2729, 2779, 0'
Thank you for your help!
0 comentarios
Respuesta aceptada
Scott MacKenzie
el 5 de Ag. de 2021
Editada: Scott MacKenzie
el 5 de Ag. de 2021
In stages, to show the possibilities...
s1 = '[[0, 145, 0], [145, 169, 1], [169, 1693, 3], [1693, 1708, 1], [1708, 2729, 3], [2729, 2779, 0]]'
s2 = strrep(s1, '],', '];')
s3 = strrep(s2, ']', '')
s4 = strrep(s3, '[', '')
Más respuestas (1)
Stephen23
el 5 de Ag. de 2021
Editada: Stephen23
el 5 de Ag. de 2021
"I converted my data... using str2num."
Although your descriptiion is unclear, I guess that your goal to convert text data into numeric data. In that case, don't waste time fiddling around with strings (or for that matter, using STR2NUM which hides evil EVAL inside):
S = '[[0, 145, 0], [145, 169, 1], [169, 1693, 3], [1693, 1708, 1], [1708, 2729, 3], [2729, 2779, 0]]';
M = sscanf(S(2:end),'[%f,%f,%f], ',[3,Inf]).'
Or
M = jsondecode(S)
2 comentarios
Stephen23
el 6 de Ag. de 2021
@Lukas Netzer: was the data provided to you in a .mat file? If not, please upload the original data file.
Ver también
Categorías
Más información sobre String 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!