Массив ArrayFire MarrayFire из файлаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Массив ArrayFire MarrayFire из файла

Сообщение Anonymous »

Мне нужно найти способ загрузить массив 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Создание масок на основе евклидова расстояния с помощью pyopencl, arrayfire или другой библиотеки Python opencl
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Arrayfire CPP с CUDA «не удалось открыть libnvrtc-builtins.so.12.2»
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • В сборке Arrayfire возникла проблема с отключенным OpenCL
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Есть ли у ArrayFire функция popcount или bitcount?
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Использование единого бэкэнда в ArrayFire
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»