gpt4 book ai didi

awk - 生成包含 LINK1 元素的 MDF 有限元网格

转载 作者:行者123 更新时间:2023-12-04 02:37:00 25 4
gpt4 key购买 nike

我在大学里做了以下作业:

Write an AWK program, that can generate an MDF finite element mesh containing LINK1 elements. The geometry of the mesh contains n pieces of vertical lines and m pieces of horizontal lines. n and m values are parameters for the AWK program. The vertical and horizontal distance between the lines are also parameters. The shape of the mesh can be seen in the following figure:

the shape of the mesh

执行示例:

awk –v n=3 –v m=2 –v dn=2 –v dm=1 –f gen.awk > output.mdf

Inputs:

n为竖线数

m是水平线的数量

dn是竖线之间的字符数

dm 是水平线之间的字符数

Output:

output.mdf 是我需要在其中绘制这些线的测量数据格式文件。

像这样:

__|__|__|__
__|__|__|__
| | |

还有:

Please make sure the output.mdf file is valid. It is possible to use the chkmdf.exe or e_plot32.exe program to check the validity of an MDF file.

别误会我的意思,我不想让别人帮我解决问题,我知道这个平台不适合那个。我只要求一些入门技巧,文档

最佳答案

您说您只是想要技巧和提示,但生命太短暂,无法在此处提供 awk 教程,因此如果您使用 - 而不是 _,那么这里是如何做的没有解释的行分隔符:

$ cat gen.awk
BEGIN {
numCols = n + 1
colWidth = dn
numRows = m + 1
rowHeight = dm

colSep = "|"
rowSep = sprintf("%*s",colWidth,"")
gsub(/ /,"-",rowSep)

for (rowNr=1; rowNr<=numRows; rowNr++) {
for (subRowNr=1; subRowNr<=rowHeight; subRowNr++) {
for (colNr=1; colNr<=numCols; colNr++) {
printf "%*s%s", colWidth, "", (colNr<numCols ? colSep : ORS)
}
}
if ( rowNr < numRows ) {
for (colNr=1; colNr<=numCols; colNr++) {
printf "%s%s", rowSep, (colNr<numCols ? colSep : ORS)
}
}
}
}

.

$ awk -v n=3 -v m=2 -v dn=2 -v dm=1 -f gen.awk
| | |
--|--|--|--
| | |
--|--|--|--
| | |

.

$ awk -v n=5 -v m=4 -v dn=6 -v dm=3 -f gen.awk
| | | | |
| | | | |
| | | | |
------|------|------|------|------|------
| | | | |
| | | | |
| | | | |
------|------|------|------|------|------
| | | | |
| | | | |
| | | | |
------|------|------|------|------|------
| | | | |
| | | | |
| | | | |
------|------|------|------|------|------
| | | | |
| | | | |
| | | | |

您可以通过 google 搜索结构、添加 print 等来弄清楚它在做什么,然后从中学习并修复它以输出您想要的确切格式。我还强烈建议您阅读 Arnold Robbins 撰写的 Effective Awk Programming,第 4 版一书 - 所有其他关于 awk 的书籍都不完整和/或已过时和/或存在其他问题。

关于awk - 生成包含 LINK1 元素的 MDF 有限元网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com