2011-09-26 17 views
5

私はMatlab R2011bを使用しています。エディタでアクティブなmfileの最初の行のテキストを取得したいと思います。私はを得るために次のコードを使うことができることを知っています。 1xn文字配列(行に分割されていない)としてのmfileのテキスト。しかし、私は最初の行だけが必要です。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

関連する問題