MATLAB (сборка .NET) Вопрос о типе данных: преобразование MWArray в строку - PullRequest
0 голосов
/ 05 октября 2018

Я использую встроенный сборщик MATLAB .NET, но у меня проблема с типами данных и возвращаемыми значениями.

Я скомпилировал небольшую, очень простую функцию в MATLAB и собрал ее для .NET.

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

Моя функция MATLAB выглядит следующим образом:

function version = get_version()
    foo ='1.0';
    bar = strcat('foo-', foo);

    version = string(bar);
end

А затем в .NET Iназовите его так:

MWArray version;
version = xClass.get_version();

, тогда как xClass - это имя встроенного класса MATLAB.Когда я пытаюсь преобразовать его в строку:

string str = version.ToString();
Console.WriteLine(str);

я просто получаю:

Internal_Matrix_Reference____ 

, но не foo-1.0 , как я ожидал.

Есть ли у кого-нибудь опыт работы со сборщиком .NET в MATLAB, который может мне в этом помочь?Это действительно сбивает меня с толку.

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 09 октября 2018

Видимо, решение довольно простое.Функция Matlab должна возвращать версию по-другому:

function version = get_version()
    foo ='1.0';
    version = strcat('foo-', foo);
end

А затем в .NET она работает как положено:

MWArray version;
version = xClass.get_version();

string str = version.ToString();
Console.WriteLine(str);
...