fluent数据处理成二维数组
- 
							
							
							
							
问题: fluent结果怎么处理为二维数组 
 详述: fluent导出的结果为(坐标,坐标,值)的格式,(值)是一个一维数组,但是在神经网络训练的时候需要(值)为二维数组,请问怎么才能转换?示意图如下:
  难点: 
 1、数据量很大,大概有几万个点
 2、fluent导出的数据很不规矩,(比如x=1的时候应该有y=a,y=b,y=c,x=2的时候应该有y=a,y=b,y=c),但是fluent导出的数,x=1的时候有y=a,y=b,y=c,x=2的时候可能只有y=c(不好解释啊 )。二维数组非常稀疏,如下图 )。二维数组非常稀疏,如下图 其实我就想要个二维数组来表示二维的物理量场,请大哥大姐们帮帮忙啊  
- 
							
							
							
							
不知道当时的问题是否解决了,我去年做的一部分工作里面也需要相关的处理。当时采用的Matlab对导出的数据进行处理,不过在数据处理之前需要将 x,y当中一些极小的值变成0,比如10的负十几次方的值,因为这些fluent输出的值可能会对处理产生影响,然后导入程序就可以变成矩阵形式了,程序大概如下。供以后有需要的朋友们参考。 data1 = xlsread('D:\User.....'); % 获取X、Y坐标和密度值的向量 
 X = data1(:, 1);
 Y = data1(:, 2);
 density = data1(:, 3);% 确定X和Y的唯一值,并按升序排列 
 unique_x = unique(X);
 unique_y = unique(Y);% 创建行列编号映射表 
 x_mapping = containers.Map(unique_x, 1:length(unique_x));
 y_mapping = containers.Map(unique_y, 1:length(unique_y));% 初始化矩阵 
 num_rows = length(unique_y);
 num_cols = length(unique_x);
 densityMatrix1 = zeros(num_rows, num_cols);% 将密度值填充到矩阵中 
 for i = 1:length(X)
 row = y_mapping(Y(i));
 col = x_mapping(X(i));
 densityMatrix1(row, col) = density(i);
 end
 
			