2016-11-11 8 views
-2

У меня есть следующая проблема: у меня есть база данных matlab (.mat) со структурой 4x17x4 и 5 полей. Поля внутри «field_a», «field_b», «field_c», «field_d», «field_e». В Matlab довольно легко извлечь элемент из него, но мне нужно найти решение в python. В Matlab я делаю это:Доступ к элементу в многомерном (3D и 4D) массиве

data = {database(:,1,1).a} 

Как извлечь «данные» в python? То, что я сделал сейчас, чтобы загрузить базу данных MatLab в Python:

fnameSISO["States"] = sio.loadmat('databaseSISO_states') 

Но когда я пытаюсь извлечь данные его работы: это не распространяется

data = fnameSISO["States"][:,1,1] 

Кроме того, я пытался загрузить базу данных с :

fnameSISO["Loo"] = np.asarray(sio.loadmat('databaseSISO_states')) 

Он также не работает.

Что я могу сделать в этой ситуации? Если я сохраню базу данных в json-файле, я смогу извлечь нужные мне элементы?

Заранее спасибо.

+0

Не могли бы вы добавить некоторые данные, с которыми можно проверить свой код? – sobek

+0

привет, спасибо за ваш интерес, но я не могу поделиться фактическими данными, которые я использую. Я подумаю об обходном пути :) –

+0

Вы говорите, что это не работает, что это значит? Есть ли сообщения об ошибках, вы получаете неправильные данные? Вы слишком расплывчаты ... – sobek

ответ

1

Я нашел решение. Я ошибся при написании синтаксиса.

data = fname["States"]["database"]["field_a"][:,1,1]