Функция h5read в Matlab - PullRequest
       5

Функция h5read в Matlab

0 голосов
/ 28 января 2019

Я бы хотел прочитать только часть набора данных файла HDF5, используя функцию h5read в Matlab.В частности, в одном из измерений я хочу прочитать только каждое 4-е значение.

Я могу прочитать весь набор данных как:

tempp = hdf5read(nameCur,namedataset);

его размер: 160x100x200x10.

Далее, когда я хочу прочитать весь набор данных, используя атрибуты «start» и «count», он работает нормально:

tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10]);

Затем я хочу прочитать весь набор данных, используя атрибут «stride»:

    tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10],[1 1 1 1]);

прекрасно работает!

Но когда я хочу наконец прочитать каждое 4-е значение из второго измерения

    tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 100 200 10],[1 4 1 1]);

, это выдает мне ошибку:

Error using h5readc
The index arguments exceed the size of the dataset.

Я не понимаю, в чем причина этого.Спасибо

1 Ответ

0 голосов
/ 04 февраля 2019

Исходя из того, что вы сказали об аргументах h5read, вам нужно откорректировать значения в count, чтобы отразить новый шаг.

Теперь вы не хотите читать 100 элементов в2-е измерения, так как в итоге вы прочитаете до элемента 400, который не существует.

Учитывая это, вы можете попробовать:

tempp = h5read(nameCur,namedataset,[1 1 1 1],[160 25 200 10],[1 4 1 1]);
...