【发布时间】:2018-05-18 18:46:30
【问题描述】:
我有几个数组/矩阵,我正在尝试使用 C# 将它们复制到 .csv,但我遇到了问题。我将向您展示的是一个 [12,480] 矩阵。我运行代码并完全复制所有前 11 行,但第 12 行中的最后 20 个值不会被复制到 .csv 中。我已经在控制台中显示了“myArray”,所有值都在那里,总矩阵长度为 5760。如果您知道发生了什么,请告诉我。我还有其他数组,它们填写了 480 个值中的 474 个、480 个值中的 427 个和 5760 个值中的 5712 个。
注意:代码正在运行,只是数组中的最后 20 个值不会复制到 .csv。我还附上了 .csv 的图像,让您更好地了解正在发生的事情。 The end of the matrix with the missing values highlighted in yellow
private static void CreateuCSV(double[,] myArray)
{
StreamWriter file = new StreamWriter("location")
for (int i = 0; i <12; i++)
{
for (int j = 0; j < 480; j++)
{
file.Write(myArray[i,j];
file.Write(",");
}
file.Write("\n");
}
}
【问题讨论】:
-
在我看来,矩阵中可能存在一些值,这会终止对 .csv 文件的写入?可能检查未写入 .csv 的矩阵的第一个实例中的列,并与其他矩阵进行比较,看看那里有什么样的格式和值。此外,如果您将 for 循环包装在 try catch 块中,您可以捕获一个异常并查看它的消息是什么。
-
除了你的问题:即使你知道数组的大小,也不要硬编码它的维度。而是使用
myArray.GetLength(0)和myArray.GetLength(1) -
Joe - 这是我最初拥有的,但它给了我同样的问题。我更改了硬编码尺寸,看看它是否发生了任何变化。
-
@SamuelOgletree 你有没有采纳我的建议?
-
将此标记为无响应