none
использование функций MATLAB, в C# RRS feed

  • Вопрос

  • Добрый вечер,вообщем вопрос:В MATLAB есть функция imhist(Image image, int n)-она строит  гистограмму яркости. Ее нужно описать,а затем вызвать в коде С#.Я нашел нечто подобное,но компилятор выдает ошибку на вторую строку:"Значение не может быть неопределенным. Имя параметра: type".Может есть какие-то другие пути решения?Или как исправить?


    void imhist(Image image, int n)

        
            Type h = Type.GetTypeFromProgID("Matlab Application"); //получаем тип приложения MATLAB
           
            object j = Activator.CreateInstance(h);//создаем экземпляр объекта типа Matlab
               
            object[] Command = new Object[]
            {"figure,imhist(image, n)"," saveas(h, 'file_name', 'png')" };//ввод команд для обработки MATLAB
            
            rezult = h.InvokeMember("Execute", BindingFlags.InvokeMethod, null, j, Command);//вызов Matlab,Exucute-выполняет подготовленные команды 
          
           
    }

Ответы

  • Исключение возникает из-за того, что GetTypeFromProgID возвращает null, т.е. нужный вам COM-объект не находится. Возможно, вы неправильно написали ProgID (попробуйте "Matlab.Application"). Или просто Mat Lab установлен x64 а приложение собираете под x86, тогда COM-объект оно не сможет увидеть.