java调用Lingo

编程入门 行业动态 更新时间:2024-10-11 01:17:27

<a href=https://www.elefans.com/category/jswz/34/1770091.html style=java调用Lingo"/>

java调用Lingo

//网格布局
panel.setLayout(new GridLayout(4,4))//指定4行4列
panel.add(new) JButton("1"));
panel.add(new) JButton("2"));//从第一行第一列开始,然后第一行第二列。排满后将从下一行开始排列。
//需要修正

而对于Lingo中矩阵传参到java中,因为相关函数

lng.LSsetPointerLng()

是不能以矩阵为参数的,所以不能直接引用。不过,虽然我不懂其中原理,有个解决方法是将矩阵转化为数组。比如,我的Demo1中可以将矩阵A[ 6 ] [ 8 ] 定义为B[48],原本的矩阵索引规则和按顺序排列是一样的。比如,我想取原本A矩阵的A[2] [5],也就是现在取B矩阵的B[17]。

以我的lng模型为例:

我将运输单价设为固定值,x(运输量)设为将被传递的参数。

建立参数
  private void Solve()//运算:赋值{int nErr;Double d1=0.;double dSumW[] = new double[6];//库存合计double dSumV[] = new double [8];//客户需求合计//double dOnDuty[] = new double [6];double dx[]=new double[48];//x矩阵double dObj[] = new double [1];//不能传递矩阵;那么只能改成数组了?double dStatus[] = new double [1];System.out.println("\nSolving...");// get the staffing requirementsfor ( int i=0; i<8; i++){String s = SumV[i].getText();//需求量赋输入值try {dSumV[ i] = d1.valueOf( s);}catch ( Exception e){dSumV[ i] = 0.;}}for ( int i=0; i<6; i++){String s = SumW[i].getText();//库存赋输入值try {dSumW[ i] = d1.valueOf( s);}catch ( Exception e){dSumW[ i] = 0.;}}// clear output fieldsfor ( int i=0; i<6; i++)//其它先赋空值{V1[i].setText( " ");V2[i].setText( " ");V3[i].setText( " ");V4[i].setText( " ");V5[i].setText( " ");V6[i].setText( " ");V7[i].setText( " ");V8[i].setText( " ");}jtfTotal.setText( " ");
传参
 nErr = lng.LSsetPointerLng( pnLngEnv, dx, nPointersNow);//矩阵if ( nErr != lng.LSERR_NO_ERROR_LNG ){System.out.println( "***LSsetPointerLng() error***: " + nErr);return;}
赋值
    	for( int i=0;i<6;i++) {Double d = (double) Math.round(dx[i*8]);Integer n = d.intValue();V1[i].setText( n.toString());}

以上应该写一个列表的,不然很冗余。。。有时间再优化吧。

更多推荐

java调用Lingo

本文发布于:2024-03-09 19:00:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725821.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:java   Lingo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!