在Python中从.mat文件读取CSI矩阵复数

2024-05-29 05:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试探索利用WiFi信号检测人类活动的话题。这个网站(http://tns.thss.tsinghua.edu.cn/wifiradar/index_en.html#fh5co-press)以.mat格式提供CSI读数的数据集。我想将这些值导入到Numpy数组或Pandas数据帧之类的东西中,以分析数据,并可能执行一些机器学习任务。你知道吗

以下是我如何读取文件:

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\u数据域感兴趣。在该字段中,包含复数的所有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,…) 谢谢你的帮助!提前谢谢


Tags: 数据http利用data信号网站数组人类

热门问题