Неверный вектор Matlab с использованием lpsolve
Я использую функцию в Matlab на основе lp_solve
, В моем случае, lp_solve
имеет следующую структуру:
A = rand (13336,3); %A is made of real numbers between 0 and 1. For this mwe, I thought 'rand' was fine
W = [0; 0; 1];
C = A(:,3);
B = 1E+09;
e = -1;
m= 13336;
xint = linspace(1,13336,13336);
xint = xint';
obj = lp_solve(A*W,C,B,e,zeros(m,1),ones(m,1),xint)
Но когда я запускаю его, я получаю эту ошибку:
Error using mxlpsolve
invalid vector.
Error in lp_solve (line 46)
mxlpsolve('set_rh_vec', lp, b);
Error in mylpsolvefunction (line 32) %This is my function that uses lp_solve
obj = lp_solve(A*W,C,B,e,zeros(m,1),ones(m,1),xint);
Я посмотрел в документации, и это говорит, под главой "Матрицы", что:
[...] если предоставляется плотная матрица, размер должен точно соответствовать размеру, ожидаемому mxlpsolve. Матрицы, содержащие слишком мало или слишком много элементов, дают "недопустимый вектор". ошибка. Разреженные матрицы могут, конечно, обеспечивать меньше элементов (не предоставленные элементы рассматриваются как ноль). Однако, если предоставлено слишком много элементов или элемент с слишком большим индексом, снова "неверный вектор". ошибка повышена
Я не понял, что они имеют в виду, когда говорят, что измерение "должно точно соответствовать измерениям, ожидаемым mxlpsolve". Во всяком случае, так как они говорят, что ошибка также может возникать "если предоставлено слишком много элементов", я попытался "сократить" мои входные данные с 13336 элементов до 50 (я уверен, что это работает с 58, и я вполне уверен, что это также с 2000), но и таким образом я получаю ту же ошибку. В чем может быть проблема?