Почему matlab не понимает * в именах файлов? - PullRequest
3 голосов
/ 17 марта 2011

Я пытался использовать:

dir('dirname\*')

, и это не сработало.Он начал работать после того, как я начал использовать:

dir('dirname\m*')

Кто-нибудь знает почему?

Ответы [ 3 ]

7 голосов
/ 17 марта 2011

Matlab действительно понимает подстановочные знаки *, но, как вам не повезло, вы придерживались соглашений о путях Windows cmd, вы ввели строку \*, которая является буквальной звездочкой (из-за экранирующей обратной косой черты).

Обходной путь, или предпочтительный способ указания путей на всех платформах, использует косую черту / в качестве разделителя каталогов.

dir('dirname/*')

Это также объясняет, почему добавление m после обратной косой черты «решило» проблему; звездочка больше не была буквальной звездочкой, но позволяла интерпретироваться как подстановочный знак.

РЕДАКТИРОВАТЬ: Документация прямо говорит, что подстановочный знак разрешен и работает, как ожидалось (см. Мое объяснение выше).

0 голосов
/ 17 марта 2011

Попробуйте указать полный путь, например dir ('c: \ dirname * .m'), и убедитесь, что папка 'dirname' существует.

0 голосов
/ 17 марта 2011

Какая у вас ОС?Здесь, на Windows, первая строка работает хорошо.Тем не менее, «*» может рассматриваться Матлабом как буквальное «*».Что происходит с dir('dirname/*')?

...