我想自动循环:
ABAQUS生成Excel文件;
Matlab利用Excel文件中的数据;
循环1和2.
现在我的问题是:在第1步之后,ABAQUS的Excel文件未保存为Book1。我无法使用Matlab命令来保存它。有没有办法不保存这个''Book1''文件,但是使用其中的数据?或者,如果我能找到它的位置,那么我可以使用里面的数据? (我假设Excel总是保存文件,即使用户没有?)
谢谢!
答案 0 :(得分:0)
正如agentp所提到的,如果您通过Python脚本运行Abaqus,您可以使用Python创建.txt文件以保存所有相关信息。如果结构良好,.txt文件可以像Excel电子表格一样可读。由于Matlab和Python具有读取和写入文件的内在功能,因此可以轻松完成此通信。
至于Matlab调用Abaqus,你可以使用类似的东西:
system('abaqus cae nogui=YOUR_SCRIPT.py')
答案 1 :(得分:0)
管道到Excel的脚本应该有类似的代码:
abq_ExcelUtilities.excelUtilities.XYtoExcel(
xyDataNames='S:Mises PI: PART-1-1 E: 4309 IP: 1', trueName='')
将相同的数据写入报告(.rpt)文件,代码如下所示:
x0 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 4309 IP: 1']
session.writeXYReport(fileName='abaqus.rpt', xyData=(x0, ))
现在“滚动你自己”,使用x0
对象:x0.data
是一个常规的python元组,包含你可以写入文件的实际数据,例如:
file=open('myfile.csv','w')
for point in x0.data: file.write('%g,%g\n'%point)
file.close()
(您可以评论或删除writeXYReport
来电)