使用Abaqus/Python Scrip从多个Excel表读取XY坐标

2024-04-26 19:02:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆CT扫描图像。在用Matlab处理(这些堆栈中的一张图像)CT扫描图像后,我将每个不同边界区域的XY坐标保存在不同的Excel表格中,如下所示:

I = imread('myCTscan.jpeg');
BW = im2bw(I);
[coords, labeledImg] = bwboundaries(BW, 4, 'holes'); 
sheet = 1;
for n=1:length(coords);
    xlswrite('fig.xlsx',coords{n,1},sheet,'A1');
    sheet = sheet+1;
end

下一步是导入这组坐标并将其绘制到Abaqus CAE草图中进行有限元分析。 我发现我的工作流程是这样的:

  1. 导入Excel工作簿
  2. 对于工作簿中的每个工作表:
    2.1条。对于每一行:读取两列以获得xy坐标(每行有两列,x和y坐标)
    2.2条。将每个xy坐标放入列表中
    2.3条。从列表中,使用样条线方法绘制草图
  3. 对工作簿中的其他工作表重复步骤2

我找了一会儿,发现了这样的东西:

^{pr2}$

但这只从一张纸上读取XY坐标,我被困在上面的第3步。因此,我的问题是如何使用Abaqus/Python(Abaqus 6.14,python2.7)脚本读取不同表中的这些坐标?在

我是Python编程新手,我可以阅读和理解语法,但写得不太好(我仍在努力研究如何在Abaqus中导入Python模块)。手动键入每个坐标(如Abaqus中的坐标模型示例.py教程)实际上是不可能的,因为我的每个CT扫描图像可以有100++的边界区域和10k++点。在

我正在使用:
Windows 7 x64
Abaqus 6.14(内置Python2.7)
Excel 2013
带图像处理工具箱的Matlab2016a


Tags: 图像区域列表绘制coordsexcelsheet边界
1条回答
网友
1楼 · 发布于 2024-04-26 19:02:21

您正试图将excel文件读取为逗号分隔的文件。按定义,CSV文件不能有多个选项卡。您的read命令将文件解释为csv,不允许您迭代文件中的选项卡(尽管它回避了这样一个问题:在保存xlsx和读取csv时,文件首先是如何正确打开的)。在

有许多python库可以解析和处理XLS/XLSX文件。在

Take a look at pyxl并使用它读取文件。 你可能会用

from openpyxl import Workbook
(some commands to open the workbook)

listofnames=wb.sheetnames
for k in listofnames:
    ws=wb.worksheets(k)

然后输入剩下的命令。在

相关问题 更多 >