아니요, MATLAB API에서는 불가능합니다. 두 가지 MATLAB API가 있습니다 : CPLEX for MATLAB Toolbox와 Cplex 클래스. 각각의 해당 기능/필드는 cplexmiqp 및 Cplex.Model.Q입니다. 둘 다 당신이 원하는 것을 정확하게 할 수는 없습니다.
그러나 MATLAB API는 Q 행렬에 대해 sparse matrix 하나만 허용합니다 (MATLAB API programming tips 섹션 참조). 스파 스 매트릭스를 사용하여,
cplex.Model.Q = [-33 6 0 0;
6 -22 11.5 0;
0 11.5 -11 0;
0 0 0 0];
나 :
예를 들어,이 두 가지 예는 교환 할 수있다
cplex.Model.Q = sparse([1, 1, 2, 2, 2, 3, 3], [1, 2, 1, 2, 3, 2, 3], [-33, 6, 6, -22, 11.5, 11.5, -11], 4, 4)
이 더 명시 적입니다 다른 API의 (예를 들어, C 호출 가능 라이브러리, C++ , 파이썬 등). 관심이 있다면, CPLEX와 함께 제공되는 예제는 어떻게 수행되는지 보여줍니다.
C 호출 가능 라이브러리 및 [CPXXcopyquad] (http://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.3/ilog.odms.cplex.help/refcallablelibrary/qpapi/copyquad.html)를 사용하고 있습니까? 그렇다면, 그 함수는 이미 q 매트릭스 (qmatbeg, qmatcnt, qmatind, qmatval을 통해)의 희박한 표현을 취합니다 .... 아직 시도해 보셨습니까? 어떤 오류가 발생하고 있습니까? – rkersh
matlab 인터페이스를 사용하고 있습니다. – Yuki