2011-09-26 12 views
5

Estoy usando Matlab R2011b. Quiero obtener el texto de la primera línea del mfile activo en el Editor. Sé que puedo usar el siguiente código para obtener todo el texto del mfile como una matriz de caracteres de 1xn (no dividida en líneas). Sin embargo, solo quiero la primera línea.¿Cómo obtener la primera línea de texto de un M-archivo de Matlab?

activeEditor = matlab.desktop.editor.getActive ;  
activeEditor.Text ; 

¿Alguna sugerencia?

+1

Esta función aparece para devolver el texto separado en líneas, líneas de texto = matlab.desktop.editor. textToLines (activeEditor.Text); – KAE

+0

Alguien sabe por qué las llamadas a 'matlab. 'en mi máquina devuelve el error' ??? Función indefinida o variable 'matlab'. – eykanal

+0

Creo que necesita R2011a o más reciente: http://blogs.mathworks.com/desktop/2011/04/11/introducing-matlab-r2011a/ – Nzbuu

Respuesta

2

Una forma de hacerlo es seleccionar todo el texto en la primera línea y luego acceder a la SelectedText propiedad:

 
>> activeEditor = matlab.desktop.editor.getActive ; 
>> activeEditor.Selection = [1 1 1 Inf]; 
>> activeEditor.SelectedText 

ans = 

This is the first line of this file 

se podría mejorar en esto almacenando la selección actual antes de seleccionar toda la primera línea de y luego restaurar la selección después de acceder al texto seleccionado. De esta forma, la posición del cursor no se pierde.

4

Puede buscar el primer carácter "nueva línea", y devolver todo, desde el principio hasta esa posición:

activeEditor = matlab.desktop.editor.getActive; 
pos = find(activeEditor.Text==char(10), 1, 'first'); 
firstLineStr = activeEditor.Text(1:pos-1) 
+0

Nota: Yo probaría esto para ver si en Mac y Linux son diferentes [EOL ] (http://en.wikipedia.org/wiki/Newline) indicadores (CR, LF, CRLF) – Amro

Cuestiones relacionadas