2017-11-21 18 views
8

MATLABは、mfilename関数を提供します。関数が呼び出されたファイルの名前が返されますが、残念ながらextensionのないファイル名が返されます。現在実行中のコードのファイル拡張子を見つける方法はありますか?

我々はファイルを持っているのであれば、たとえば、myfile.mと呼ばれ、私たちは、ファイル内のmfilenameを呼び出し、それが文字列を返します'myfile'が、私はまたfileparts機能を見ていたが、それは有用ではないではありません'myfile.m'

あなたが提供する文字列だけを解析するためです。

私はコードの一部を開発しているが、ファイル拡張子に基づいて異なる動作をしています。たとえば、ファイルの拡張子が.m.pであるかどうかを、run timeにする必要があります。

MATLAB hereに関連付けられている拡張子の一覧を確認できます。

どうすればいいですか?

答えて

9

Looking at the docsのように、dbstackコマンドから必要な情報を得ることができるようですが、追加の処理が少し必要になります。

[ST, I] = dbstack('-completenames', 1) 

ST = 

    file: 'C:\myProject\myfile.m' 
    name: 'myfile' 
    line: 2 
+3

'[ST、I] = dbstack( ' - completenames')'なし 'は私のために働いた。次に、ファイル拡張子を取得するために 'fileparts'で' ST.file'を処理します。どうもありがとう。 – codeaviator

関連する問題