数学建模社区-数学中国

标题: lingo 如何连续导出变量 [打印本页]

作者: ckyych    时间: 2013-7-16 08:55
标题: lingo 如何连续导出变量
如果用@text 函数,不改变文件名,如何连续导出 不同长度的变量
作者: ckyych    时间: 2013-7-16 09:28
自己顶下,有无高手求解
作者: wujianjack2    时间: 2013-7-18 18:55
ckyych,我觉得你提出的这个问题相当经典,以前我没遇到这个问题也没有注意,我现在给出一种不太完美的解决方案,如果你有什么想法欢迎一起讨论交流,以下仅举一个小例子。

程序代码:
MODEL:
SETS:
NUMBERS_1/1..5/:A,B,C,D;
NUMBERS_2/1..4/:E,F,G,H;
ENDSETS
DATA:
A=4,6,7,89,6;
B=3,4,6,45,3;
E=2,5,6,7;
F=67,34,76,99;
@TEXT('SOLUTION.txt')=@WRITE('SOLUTION OF C ARE:',@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITEFOR(NUMBERS_1(I):C(I),@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITE('SOLUTION OF D ARE:',@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITEFOR(NUMBERS_1(I):D(I),@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITE('SOLUTION OF G ARE:',@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITEFOR(NUMBERS_2(I):G(I),@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITE('SOLUTION OF H ARE:',@NEWLINE(1));
@TEXT('SOLUTION.txt')=@WRITEFOR(NUMBERS_2(I):H(I),@NEWLINE(1));
ENDDATA
@FOR(NUMBERS_1(I):C(I)=A(I)-B(I));
@FOR(NUMBERS_1(I):D(I)=A(I)+B(I));
@FOR(NUMBERS_2(I):G(I)=D(I)-E(I));
@FOR(NUMBERS_2(I):H(I)=D(I)+E(I));
END

运行结果为:
SOLUTION OF C ARE:
1
2
1
44
3
SOLUTION OF D ARE:
7
10
13
134
9
SOLUTION OF G ARE:
5
5
7
127
SOLUTION OF H ARE:
9
15
19
141

至于如果想单纯使用@TEXT()函数,我也尝试过,LINGO报错并提示格式错误,内存溢出等。
你也可以查看LINGO的帮助文档关于@TEXT()的说明,Help->Help Topics->索引(N)->输入:text->Writing to Files Using @TEXT()。

如果我的回答有什么错误,欢迎指出并与我交流,谢谢合作!
作者: 李芳    时间: 2014-4-20 15:33





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5