Ingresando '\' antes de un carácter en una cadena Matlab

Estoy tratando de insertar un '\' en una matriz de cadenas antes de cada '_' en la cadena. La razón por la que trato de hacer esto es para mantener el formato de los nombres de las hojas que extraigo de un archivo xls cuando uso los nombres de las hojas en la leyenda de un gráfico. Intenté usar:

  legend(sheetname{n},'Interpreter','none','Location','East')

pero simplemente agrega los dos comandos como otras dos etiquetas en la leyenda. Entiende esta solución. He buscado en los nombres de las hojas y he encontrado cómo reemplazar, pero no quiero reemplazar los caracteres si es posible. Si hay una manera de hacer esto por favor hágamelo saber.

preguntado el 12 de junio de 12 a las 21:06

2 Respuestas

Prueba esto en su lugar:

legend(sheetname(n),'Interpreter','none','Location','East');

Tenga en cuenta el uso de paréntesis en lugar de llaves, que pasa una celda a LEYENDA en vez de contenido de la célula (es decir indexación de celdas en lugar de indexación de contenido). Esto debería permitir que los pares adicionales de parámetro/valor se interpreten correctamente.

Respondido el 12 de junio de 12 a las 21:06

Si desea aplicar una función de reemplazo de cadena en cada elemento de celda, puede hacerlo de la siguiente manera:

cellfun(@(x) strrep(x,'_','\_'),sheetname,'uniformoutput',false)

esto se aplica strrep(x,'_','\_') a todos los elementos de sheetnames y lo genera como una nueva matriz de celdas (debido a 'uniformoutput',false).

Respondido el 13 de junio de 12 a las 08:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.