Я получаю следующую ошибку при использовании кодировщика MATLAB для создания кода С++ из файла m с вызовом функции c ompmex.c
Вызовы функций C всегда возвращают скалярные значения, но здесь ожидается нескалярное значение.
Мой код:
function [D,gamma] = DSGD2(X,H) %#codegen
[Xr,Xc]=size(X);
[Hr,Hc]=size(H);
D=zeros(Hr,Hc,'double');
D=X(:,11:210);
d1=sqrt(sum(D.*D)); D=D./repmat(d1,Xr,1);
beta=zeros(Xr,Xc,'double');
beta=coder.ceval('ompmex',H,X,H'*H,200);
Может ли кто-нибудь помочь в этом. Я не получаю рабочий ответ онлайн
ompmex
. В сообщении говорится, что функция C не может вернуть массив, однакоbeta
назначен размерXr-by-Xc
. - person Ryan Livingston   schedule 16.07.2014.h
), содержащий объявление дляompmex
. Что-то вродеdouble ompmex(double, into, double);
. Другой вопрос,ompmex
это файл MEX? У вас будет файл с именемompmex.mex...
, где ... может быть буквой и числом 32 или 64, например.mexa64
. - person Ryan Livingston   schedule 16.07.2014ompmex.c
в своем вопросе. Вы видите объявление функции (что-то вродеdouble ompmex(double, int, double);
) в этом файле? Увидев способ объявленияompmex
, необходимо посоветовать, как вызывать его черезcoder.ceval
. - person Ryan Livingston   schedule 16.07.2014