2011-09-26 63 views
5

我正在使用Matlab R2011b。我想在編輯器中獲取活動mfile的第一行的文本。我知道我可以使用下面的代碼獲取全部 mfile的文本作爲1xn字符數組(不能分解成行)。但是我只想要第一行。如何獲得Matlab M文件的第一行文本?

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

有什麼建議嗎?要做到這一點

+1

這個功能似乎回到分成行,文本行= matlab.desktop.editor文本。 textToLines(activeEditor.Text); – KAE

+0

任何人都知道爲什麼要調用matlab。 '在我的機器上返回錯誤'???未定義的函數或變量'matlab'.'? – eykanal

+0

我認爲你需要R2011a或更新版本:http://blogs.mathworks.com/desktop/2011/04/11/introducing-matlab-r2011a/ – Nzbuu

回答

2

的一種方法是選擇所有文本的第一行,然後訪問SelectedText屬性:選擇整個第一行之前通過存儲當前選擇

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

ans = 

This is the first line of this file 

您可以改善這種然後在選定的文本被訪問後恢復選擇。這樣光標位置不會丟失。

4

您可以搜索第一個「換行」字樣,並從一開始就一切恢復到該位置:

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

注意:我會測試這個來看Mac和Linux是否有不同[EOL ](http://en.wikipedia.org/wiki/Newline)使用指標(CR,LF,CRLF) – Amro

相關問題