一直以为两者是一样的,直到最近发现自己用python画的台站波形和师兄给的matlab代码画的完全不一样,读取的文件都是一样的。结果图画出来差的离谱,在这里记录一下,自己踩过的坑。
matlab中的 reshape
在一维数据转二维的时候,matlab是以列为优先的,比如一个一维数据如下:
如上可以看出,matlab在进行reshape的时候,是一列一列填充来的,在上图中,把数组a reshape成3行4列的数据的时候可以看到,先取出前三个数字1,2,3填充第一列,在取后面是三个填充第二列,以此类推对数据进行二维重组。
python中的reshape
在一维数据转二维的时候,python是以行为优先的,比如一个一维数据如下:
如上可以看出,python在进行reshape的时候,是一行一行来填充的,将数据reshape成三行四列的数据的时候,先取前四个数据1,2,3,4填充第一行,然后取后面四个填充第二行,之后第三行,以此类推对数据进行重组。
总结
由于研究需要,自己平时使用的代码需要在matlab和python之间进行切换,有时一个小细节不注意可能会造成很严重的错误,比如这个reshape,所以基础功还是要打扎实!