Мне нужно найти способ загрузить массив Arrayfire из файла, файл имеет формат: ix iy iz val , где (ix, iy, iz) являются координатами, в которых должно быть значение, Val. Я открываю файл по способу C ++ (с GetLine и SO) и пробираю строку, правильно получаю индексы IX, iy, iz и значение, val
, прежде чем я начну итерацию файла, я создаю свой массив как обычный
af::array af_obj(Lx,Ly,Lz, f32);
< /code>
Затем, когда я итерации, я использую такую строку, чтобы сохранить значения: < /p>
af_obj( ix, iy ,iz ) = val
< /code>
Но массив неправильно сохраняет информацию, я имею в виду, если я делаю то же самое с простым тридимерным массивом, он правильно содержит информацию. (какая -то вид дискретизации для представления сферы, вся точка зрения, используйте этот массив для умножения другого массива (удерживающего поля скорости), поэтому, где солидно, скорость будет иметь нулевое значение) < /p>
Я пробовал другие способы, выравниваю данные в 1D -массиве и передаю его конструктору, но в лучшем случае. 300, ly = lz = 100) Но я не могу сделать то, что я хочу.
Я точно знаю, что файл содержит правильные данные, я генерирую этот файл из другого кода (если, возможно, изменение формата файла может помочь, скажите мне, я могу изменить его) < /p>
за чтение и ответы. Данные, которые я использую: < /p>
std::ofstream file;
file.open("solidRegion.dat");
for( int iz = 0 ; iz < this->Lz; iz++ ){
for( int iy = 0 ; iy < this->Ly; iy++){
for( int ix = 0 ; ix < this->Lx ; ix++){
file > z >> o;
af_obj(x,y,z) = o;
object[x][y][z] = o;
}
< /code>
Массив объектов представляет собой классический 3D 3D -массив C ++ (размеры LX, LY, LZ), и если данные правильно сохранены в этом массиве (объект), но не в объекте ArrayFire ... и я не знаю, почему.int *h_o;
h_o = new int[Lx*Ly*Lz];
int i = 0;
for ( int k = 0 ; k < Lz ; k++)
for( int ix = 0 ; ix < Lx ; ix++)
for( int j = 0 ; j < Ly ; j++)
{
h_o = object[ix][j][k];
i++;
}
af::array af_obj(Lx, Ly ,Lz , h_o);
< /code>
Зная, что de 3d объект [] [] [] Array имеет правильную информацию! < /p>
Но объект Arrayfire af_obj, как я уже сказал, массив представляет сферу, в лучшем случае объект Arrayfire Shod 3 Spheres (не понятие). Порядок вложенных форм имеет значение, но я попробовал все возможное сочетание XYZ, и, кажется, ничего не работает.
Подробнее здесь: https://stackoverflow.com/questions/357 ... -from-file
Массив ArrayFire MarrayFire из файла ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение