[英]Adding values from text file to 2D Array c#
编辑---我在foreach循环中将值添加到2D数组时遇到麻烦。 Hari指出,我需要在循环之前声明i = 0和数组,并且将值的分配向后分配。 (谢谢)。 但是,我试图添加一个最终的强度数组并在Debug.Log中记录i的值,并且控制台将读取“ System.Single []”,而不是单个值。 知道为什么会这样吗? 谢谢!!
这是我的代码:
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
//[Serializable]
public class MultiArrayList2 : MonoBehaviour {
public TextAsset datafile;
private int i;
private float[,] coordinates;
private float[] intensity;
// Use this for initialization
void Start() {
string[] dataLines = datafile.text.Split ('\n');
string[] lineValues;
//print (dataLines.Length);
i=0;
float[,] coordinates = new float[6853, 3];
float[] intensity = new float[6853];
foreach (string line in dataLines) {
lineValues = line.Split (' ');
float coordinateX = float.Parse (lineValues [0]);
float coordinateY = float.Parse (lineValues [1]);
float coordinateZ = float.Parse (lineValues [2]);
float intens = float.Parse (lineValues [3]);
coordinates [i, 0] = coordinateX;
coordinates [i, 1] = coordinateY;
coordinates [i, 2] = coordinateZ;
intensity [i] = intens;
Debug.Log (intensity);
i++;
}
}
}
您没有为数组元素分配任何内容,首先要使数组的元素不包含任何值,然后才将它们分配给coordinateX
否则应该相反,
coordinates [i, 0] = coordinateX;
几点。
i
,请在循环之前初始化此变量( foreach
) coordinates
初始化移到下一行。 Debug.Log
总是寻找第一个坐标,我相信您想为每个坐标将其更改为i
。 尝试这个。
i=0;
int[,] coordinates = new int[6853, 3];
foreach (string line in dataLines) {
lineValues = line.Split (' ');
int coordinateX = int.Parse (lineValues [0]);
int coordinateY = int.Parse (lineValues [1]);
int coordinateZ = int.Parse (lineValues [2]);
float intensity = float.Parse (lineValues [3]);
coordinates [i, 0] = coordinateX;
coordinates [i, 1] = coordinateY;
coordinates [i, 2] = coordinateZ;
Debug.Log(coordinates [i, 0]);
i++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.