Завершение кода Matlab для метода класса в папке класса и пространстве имен - PullRequest
2 голосов
/ 19 июня 2019

У меня есть класс, который находится в папке пространства имен, и в этой папке пространства имен он находится внутри папки класса. Таким образом, структура каталогов

inpath/+namespace/@ClassName/ClassName.m

Я бы хотел предложить несколько вариантов кода для метода, определенного в ClassName.m.

Я сгенерировал файл functionSignature.json и поместил его в

inpath/+namespace/@ClassName/

который не работал, а также в

inpath/+namespace/

, который тоже не работал.

Кроме того, я пробовал следующие имена функций:

"Classname.Methodname"

и

"namespace.ClassName.MethodName"

в обоих местах, но это не сработало.

Ответ на этот вопрос говорит о том, что синтаксис "ClassName.MethodName" является правильным для методов класса, но класс не был расположен в пространстве имен (и в ответе не говорится, был ли класс определен в каталог классов).

Чтобы убедиться, что других ошибок нет, вот мой оригинальный файл functionSignature.json (с использованием "namespace.ClassName.MethodName"):

{
  "SICM.SICMScan.FromFile":
  {
     "inputs":
     [
         {"name":"in1",  "kind":"ordered", "type":"file=*.sicm,*.sic,*.ras"}
     ]
  }
} 

Мои вопросы:

  • Куда поместить этот файл в приведенном выше случае?
  • Как назвать метод?

1 Ответ

2 голосов
/ 19 июня 2019

кажется , что моя первоначальная догадка верна: файл functionSignature.json должен находиться в любом каталоге, который вы добавляете в путь MATLAB, чтобы использовать функции. Так как каталоги пространства имен не добавляются непосредственно в путь, а их родительский каталог, каталог functionSignature.json должен находиться в родительском каталоге каталога пространства имен.

...