2

ファイルのリストを含む list という名前のセル配列があります。そのリストから特定のファイルのみを抽出し、同じ配列に保存したいと思います。これが私がやろうとしていることです:

function [ varargout ] = myFiles( varargin )

list = {'test.m' '.' '..' 'test1.m' 'test2.txt'};

list = strmatch('*.m', list)

end

私の最終的なリストは次のようになりますが、インデックスで十分です。

list = test.m  test1.m

Windows で MATLAB を使用しています。二重引用符で囲まれたパターンを使用すると、エラーがスローされます。(.) や (*) のエスケープ シーケンスとしても \\ を使用してみました。

4

2 に答える 2

1

strmatch指定されたプレフィックスで始まる文字列を検索するためのものです。正規表現はサポートされていません。そのためregexpには、引数を逆の順序で取る、が必要です。または、すべての文字列を逆にした場合はstrmatch('m.',list)、ファイル名を復元するために結果を再度使用してから逆にすることができます。

于 2013-03-15T05:53:03.043 に答える
0

ここによると、あなたはそのようなものが必要になるでしょう:.*\.m$問題は、ウィンドウでの通常の検索とは異なり、*0回以上の繰り返しが先行していることを意味するため、それ自体では機能しません。

.この場合、 0回以上任意の文字(つまり、任意の1文字)に一致.mし、最後にaが続くと言っています。は$、一致が文字列の最後で終了する必要があることを指定します。

于 2013-03-15T05:53:10.813 に答える