This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5994:将存储在.txt 或.csv 文件中的阵列写入 DSPLIB 函数中使用的矩阵

Guru**** 2391415 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1063487/msp430fr5994-writing-an-array-stored-in-a-txt-or-csv-file-into-a-matrix-used-in-the-dsplib-functions

器件型号:MSP430FR5994

我正在尝试使用从存储在".csv"或".txt "文件中的数组中获取的值填充使用 DSPLIB 创建的矩阵。 在论坛上查找不同的问题后、我无法找到与我的案例情景相关的任何内容。 我定义的矩阵如下:

#define SIGNAL_ROWS1        80
#define SIGNAL_COLS1        12
#define SIGNAL_ROWS2        12
#define SIGNAL_COLS2        12
#define SIGNAL_ROWS3        10
#define SIGNAL_COLS3        10
#define SIGNAL_ROWS4        2
#define SIGNAL_COLS4        2

DSPLIB_DATA(feat1,4)
_q15 feat1[SIGNAL_ROWS1][SIGNAL_COLS1];
DSPLIB_DATA(feat2,4)
_q15 feat2[SIGNAL_ROWS1][SIGNAL_COLS1];
DSPLIB_DATA(feat3,4)
_q15 feat3[SIGNAL_ROWS1][SIGNAL_COLS3];


我想用 另一个文件中的值填充'feat1'矩阵-我也在'.csv 和'.txt 文件中存储了相同的值。 随附.csv 文件、可在下面找到.txt 文件:

[[ 0.35857296  0.21042922 -0.08225453  0.3217469  -0.44799638 -0.06907667
   0.5659083  -0.1475712  -0.24716747 -0.15554845  0.4310655  -0.29637754]
 [ 0.00472303 -0.3411637  -0.19772422 -0.11631064 -0.27824962 -0.25388265
   0.00891077  0.10253942  0.27063906 -0.23682034  0.06518856  0.06159532]
 [-0.11366806 -0.01736174 -0.39723396 -0.20487584  0.03822005  0.2574405
   0.08981771 -0.13431907 -0.09522009  0.39168322 -0.20012882  0.44656527]
 [ 0.1640519  -0.369921    0.23322558 -0.29942623  0.23010838  0.24285696
  -0.23889028  0.06027269  0.2658466   0.25571382  0.14368658 -0.2990439 ]
 [ 0.21543886  0.2715501  -0.20803583 -0.18913464 -0.02494502  0.3459934
   0.33134523 -0.3457173  -0.21092045 -0.07807207  0.07488498  0.2743231 ]
 [-0.13127583 -0.4988052   0.31822503  0.2920118  -0.04226708  0.37520805
  -0.17256892 -0.06079948  0.17028129  0.2871573   0.12988703 -0.16121817]
 [ 0.1939192  -0.30145732 -0.3537929   0.07216118  0.11963165 -0.4844323
   0.30897418 -0.25955236 -0.4175831  -0.24272859  0.40312752  0.3449409 ]
 [-0.3460613   0.12978868 -0.46680367  0.19203888  0.47112143  0.05840514
   0.46010497 -0.3723688  -0.17495692  0.00933814 -0.09194841  0.1551894 ]
 [ 0.27103728  0.56833845 -0.0040189   0.20362225  0.25817502 -0.42329544
  -0.40397826 -0.22516978 -0.42909026 -0.21150815  0.4469569   0.18873656]
 [-0.26320454 -0.52403426 -0.43547738 -0.30629405 -0.20352125  0.3051554
  -0.25495297 -0.11253476  0.44480813 -0.24586213 -0.42910498  0.31029606]
 [ 0.06701799 -0.3833354  -0.25883508  0.30998796  0.33381534 -0.18359664
  -0.03188626 -0.01019633 -0.1486125   0.00092602  0.44982535 -0.33920658]
 [-0.1788496   0.24436125 -0.10006464 -0.3796707  -0.15663052  0.08440372
   0.04599481  0.4975593   0.28131127 -0.06303859 -0.16815124  0.12521112]]

文本文件包含一个12*12数组,我要将该数组粘贴到我用于进一步计算的12*12矩阵中的一个。 我不确定如何解决这个问题-有人建议使用 fopen 和 fscanf 读取 csv 文件、但我对如何在上述情形中应用此问题有点困惑。 如果有任何帮助、我们将不胜感激。 谢谢。

e2e.ti.com/.../weights1.csv

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果希望让编译器初始化数组、则必须将文本文件编辑为编译器所喜欢的格式、并将其插入代码中。 当然、使用适当的库函数将浮点值转换为 Q15。 (  _Q15 feat1[signal_ROWS1][signal_COLS1]={{_Q15 (-0.11366806)、... };等等) 使编译器能够提前处理所有这些杂乱的浮点数据。

    如果您希望在运行时读取数据中的代码、则没有溢出的 scanf 和浮点库膨胀。