我试图创建一个数组并将其输出到具有正确行和列的excel。但是当我运行下面的代码时,它会在一列和16行中提供它们。我可以用任何方式改变它,以便它以4列4行的形式提供给我吗?
do i = 1, 4
do j = 1, 4
test(i,j) = 2
print *, test(i,j)
open( unit = 10, file = "test.csv")
write(10,*), test(i,j)
end do
end do
答案 0 :(得分:2)
首先要做的事情:如果你做文件i / o,你需要打开和关闭文件。你只需要这样做一次。
接下来,每个write
语句将(除非另有明确说明),提前行。
获得您想要的最简单方法是:
test(:, :) = 2
open(unit=10, file='test.csv')
do j = 1, 4
write(10, *) test(1:4, j)
end do
close(10)
但这不是逗号分隔。假设test
是一个整数数组,您可以将上面的write
语句修改为:
write(10, '(3(I0, ", "), I0)') test(1:4, j)
更新:我刚刚确认@ mark-s建议:
write(10, '(*(I0 : ", "))') test(:, j)
这甚至更好,因为您不必知道数组的大小。
或者,更好,并描述here,您可以使用 CSV模块