将数组写入CSV文件

时间:2016-02-19 00:41:12

标签: arrays excel fortran

我试图创建一个数组并将其输出到具有正确行和列的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

1 个答案:

答案 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模块