Matlab でプログラムを作成する必要があります。多くのファイルを処理するため、パフォーマンスは非常に重要です。
ファイル名の最後のファイル拡張子を見つけて、そこで分割する必要があります。
たとえば、file.name.tar.gz
と に分割する必要がありますfile.name.tar
。gz
これを行う 3 つの方法を特定しましたが、どれが最速かはわかりません。
1.
javaFilename = java.lang.String(fileName);
lastDot = javaFilename.lastIndexOf('.');
name = char(javaFilename.substring(0, lastDot-1));
ext = char(javaFilename.substring(lastDot+1));
2.
dots = findstr(fileName, '.');
lastDot = dots(length(dots));
name = fileName(1:lastDot-1);
ext = fileName(lastDot+1:end);
3.
[name tempExt] = strtok(fileName, '.');
while tempExt
[temp2 tempExt] = strtok(fileName, '.');
if tempExt
name = strcat(name, '.', temp2);
end
end
ext = temp2(2:end);
3番目は最悪だと思います。しかし、他の方法はどうですか?私が説明した方法よりも速い方法を思いつくことができますか?