我正在使用glpk求解器來獲取xmin中最小化問題的LP變量值。 xmin是一個包含0,1和一些小數值的向量。那麼我想要得到它們中的小數值。在matlab中找到操作/ octave
frac_value = find (xmin > 0 & xmin < 1)
frac_value_xmin = xmin(frac_value)
frac_value
應該給我從xmin分數值的位置。 frac_value_xmin
應該給我的價值。
對於某些輸入xmin
只包含0
和1
並且顯示沒有小數值。像xmin= 1 0 -0 1 0
但對於一些投入xmin
還顯示,只有0
和1
值,但像下面
凡xmin =
1.00000
1.00000
0.00000
-0.00000
的find
手術後返回frac_value = 3
和frac_value_xmin = 2.4652e-32
哪裏它假設不返回任何興。
對於一些輸入xmin = 1.0000 0.50000 0.00000 0.50000
那麼它也顯示正確的輸出。爲frac_value = 2 4
和frac_value_xmin = 0.50000 0.50000
我試過frac_value = intersect(find(xmin>0), find(xmin<1))
這也給了我同樣類型的問題。我不知道爲什麼會發生這種情況。任何幫助有關這將不勝感激。
這不是一個正常的行爲,'find'應該只返回有限整數。你能用這種行爲產生一個最小的例子嗎? – Ratbert