0

我在 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),但也这样我收到了同样的错误。问题可能是什么?

4

0 回答 0