我想自动化一个循环:
ABAQUS 生成 Excel 文件;
Matlab利用Excel文件中的数据;
循环 1 和 2。
现在我的问题是:在第 1 步之后,来自 ABAQUS 的 Excel 文件未保存为 Book1。我无法使用 Matlab 命令来保存它。有没有办法不保存这个“Book1”文件,而是使用其中的数据?或者如果我能找到它在哪里,我可以使用里面的数据?(我假设即使用户不保存文件,Excel 也总是保存文件?)
谢谢!
正如 agentp 所提到的,如果您通过 Python 脚本运行 Abaqus,您可以只使用 Python 创建一个 .txt 文件来保存所有相关信息。如果结构良好,.txt 文件可以像 Excel 电子表格一样可读。由于 Matlab 和 Python 具有读取和写入文件的内在函数,因此可以轻松完成这种通信。
至于 Matlab 调用 Abaqus,你可以使用类似的东西:
system('abaqus cae nogui=YOUR_SCRIPT.py')
您通过管道传输到 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
通话)