Чтение комплексных чисел матрицы CSI из файла .mat в Python - PullRequest
0 голосов
/ 26 декабря 2018

Я пытался исследовать тему обнаружения человеческой деятельности с помощью сигналов WiFi.Этот веб-сайт (http://tns.thss.tsinghua.edu.cn/wifiradar/index_en.html#fh5co-press) предоставляет наборы данных с показаниями CSI в формате .mat. Я хотел бы импортировать эти значения в нечто вроде массива Numpy или Pandas DataFrame для анализа данных и, возможно, выполнения некоторых задач машинного обучения.

Вот как я читаю файл:

d = scipy.io.loadmat(file)
d.keys(): 
dict_keys(['__header__', '__version__', '__globals__', 'csi_data', 'gt_trace', 
'init_loc', 'rx_loc', 'ts_data', 'tx_loc'])

Меня интересует поле csi_data. В этом поле все массивы csi, содержащие комплексные числа, сцепляются друг с другом:

array([[array([[ -4.50318786 +8.44347724j,   5.62898483+10.69507118j,
     13.50956359 +1.12579697j, ...,  -4.50318786 +1.12579697j,
     -0.56289848 +3.3773909j ,   0.56289848 +2.25159393j],
   [  7.8805554  +3.37738089j,  10.13214266 -6.19186496j,
      0.        -12.94662673j, ...,   2.25158726 +3.9402777j ,
      3.37738089 +0.j        ,   2.25158726 -1.12579363j],
   [  6.7553659  -5.62947158j,  -0.56294716-11.82189032j,
    -12.38483747 -4.50357726j, ...,   4.50357726 -1.12589432j,
      0.56294716 -3.37768295j,  -0.56294716 -2.81473579j],
   ...,
   [ -9.00567956 -6.75425967j, -13.50851934 +3.37712983j,
     -5.62854972+14.63422928j, ...,   2.25141989 -5.62854972j,
     -2.81427486 -3.37712983j,  -3.37712983 -1.12570994j],
   [ -7.31688093 -9.00539191j, -12.94525087 +0.56283699j,

когда я пытаюсь использовать len (), он возвращает 1, и поэтому все методы итерации ключей и значений не работают с этим, потому что они обрабатывают это как одно поле.

Я быхотел бы иметь каждый массив в одной строке с числовым индексом (0,1, ...) Я ценю любую помощь! заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...