Page 1 of 1

Открытие файлов в цикле

PostPosted: 19 Sep 2017, 21:13
by molotok
Доброго времени суток, у меня возникла проблема с реализацией алгоритма открытия 73-х файлов в цикле, не знаю как это реализовать. Открыть два, три файла и посчитать проблем нет, но вот для 73-х уже проблемно. В каждом файле находится матрица 2048 строк на 11 столбцов, нужно считать все эти файлы и записать в один массив посчитав среднее арифметическое значение каждого элемента матрицы, то есть значение первого элемента матрицы x[i,j] получается из 73 матриц и так для каждого значения. Значения в файлах отделены пробелом. Заранее спасибо за помощь.

Re: Открытие файлов в цикле

PostPosted: 19 Sep 2017, 22:27
by IvanLis
molotok wrote:Доброго времени суток, у меня возникла проблема с реализацией алгоритма открытия 73-х файлов в цикле, не знаю как это реализовать. Открыть два, три файла и посчитать проблем нет, но вот для 73-х уже проблемно. В каждом файле находится матрица 2048 строк на 11 столбцов, нужно считать все эти файлы и записать в один массив посчитав среднее арифметическое значение каждого элемента матрицы, то есть значение первого элемента матрицы x[i,j] получается из 73 матриц и так для каждого значения. Значения в файлах отделены пробелом. Заранее спасибо за помощь.


Т.е. в результате Вам необходимо получить матрицу 2048 строк на 11 столбцов, где каждый элемент это среднее значение соответствующих элементов 73 матриц?

Если да, то грузите 1-й файл, получаете 2D массив (2048*11).
Грузите 2-й файл и дописываете его в первый, получаете 3D массив (2048*11*2 [page]).... и т.д. В результате получится 3D массив (2048*11*73).
:labview: без проблем проглотит массив из чуть более 1.5 мл. элементов.
После этого выдергиваете столбик из 73 элементов и считаете среднее, пишите его в соответствующую позицию 2D массива.

Re: Открытие файлов в цикле

PostPosted: 19 Sep 2017, 22:34
by Blackman
:think:

Re: Открытие файлов в цикле

PostPosted: 19 Sep 2017, 23:04
by molotok
Т.е. в результате Вам необходимо получить матрицу 2048 строк на 11 столбцов, где каждый элемент это среднее значение соответствующих элементов 73 матриц?

да именно эту матрицу нужно получить, но уровень знаний в :labview: оставляет желать лучшего и реализовать это практически :dntknw:

Re: Открытие файлов в цикле

PostPosted: 19 Sep 2017, 23:08
by IvanLis
molotok wrote:да именно эту матрицу нужно получить, но уровень знаний в :labview: оставляет желать лучшего и реализовать это практически :dntknw:

Дорогу осилит идущий.

Лучше Вас никто не сделает, мы можем только помочь и подсказать.
Прочтите и посмотрите, что Вам напредлагали. Соберите все в кучу и получите результат.


Что касается вычисления среднего:
1.png
Untitled 1.vi
lv8.0 save from 2010
(507.59 KiB) Downloaded 44 times

Re: Открытие файлов в цикле

PostPosted: 19 Sep 2017, 23:48
by molotok
Что касается вычисления среднего:


Это вот так просто и изящно делается? искал на форуме на формировать 3d массив и вообще ничего не нашел. Получается нужно вместо цикла слева, цикл для захвата 73 файлов и готово? Не получается 73 в цикле открыть, открывает только первый файл.

Re: Открытие файлов в цикле

PostPosted: 20 Sep 2017, 00:42
by Kosist
molotok wrote:Не получается 73 в цикле открыть, открывает только первый файл.

Нужно получить массив путей к файлам (например, функция Recursive File List.vi), а затем открывать их в цикле. Т.е. Ваш код сейчас нужно "завернуть" в еще один цикл "сверху".
Используйте пример IvanLis - левый цикл нужно изменить, и вместо генерации чисел открывать файлы, и собирать данные в 3-х мерный массив.

Re: Открытие файлов в цикле

PostPosted: 20 Sep 2017, 01:08
by molotok
Kosist wrote:
molotok wrote:Не получается 73 в цикле открыть, открывает только первый файл.

Нужно получить массив путей к файлам (например, функция Recursive File List.vi), а затем открывать их в цикле. Т.е. Ваш код сейчас нужно "завернуть" в еще один цикл "сверху".
Используйте пример IvanLis - левый цикл нужно изменить, и вместо генерации чисел открывать файлы, и собирать данные в 3-х мерный массив.


Не пойму почему ошибку выдаёт

Re: Открытие файлов в цикле

PostPosted: 20 Sep 2017, 08:13
by Borjomy_1
Наверное, указали путь к файлу, а не к каталогу. В свойствах Path укажите, что выбор каталога

Re: Открытие файлов в цикле

PostPosted: 20 Sep 2017, 09:40
by molotok
Borjomy_1 wrote:Наверное, указали путь к файлу, а не к каталогу. В свойствах Path укажите, что выбор каталога

Спасибо, всё именно так было, всё заработало, ещё раз всем огромное спасибо!

Re: Открытие файлов в цикле

PostPosted: 20 Sep 2017, 10:42
by Blackman
Не зависит от размера входного массива + остальные преимущества)