r语言和matlab的区别 r语言和matlab哪个好

您所在的位置:网站首页 matlab与r语言的区别 r语言和matlab的区别 r语言和matlab哪个好

r语言和matlab的区别 r语言和matlab哪个好

2024-07-12 16:58| 来源: 网络整理| 查看: 265

为何用R

对于算法原型来讲,实际上MATLAB才是数字信号甚至包括CV数据处理的最好工具,不过MATLAB实在太厚重了,而且从正规使用来讲成本相当的高,公司大概是不会拨出这个预算的,个人更不可能了。考虑到一些邮件交互的时候还是要尽量避免版权问题,需要一个免费的数据处理和图形工具,所以R自然就是首选了。

实际上R的官方包一直都在本子里装着,只是平时大都拿来当计算器用(相当好用,秒算极限求导微分积分,用来辅导高中生简直神一般的存在)。不过R的命令行还是不方便做工程化的事情的,所以装了个人版RStudio,方便一边写函数脚本一边调试,还能像MATLAB一样随时看工作变量和图形。

对了,为什么不用Python,因为Python比MATLAB还厚重,哐哐的吃内存,实时绘图也慢一些。某种意义上Python还是更适合“计算”而不是“研究”。

数据说明 

用的是一个3天线FMCW雷达的ADC信号,每个chirp采样128次。数据存储是二进制浮点格式:

ANT_0_float[128] | ANT_1_float[128] | ANT_2_float[128] | ...

即每一帧依次保存每个天线的128个浮点数。

数据可以从这里下载。

https://pan.baidu.com/s/1v3bEQQRT0TPK1uUKJzEOQQ?pwd=qkfk 

R语言处理

语法建议去翻官方的Reference pdf链接,很全面。

读二进制文件

比较不方便的是数组没有那么灵活,不能直接写m[...] = ...,需要提前定义。不过考虑到效率问题实际上MATLAB也会疯狂提示你预先定义类型并预分配空间,只是R这里就变成强制了。

readframe iq = rangefft(adc) > iq_mean_rx = apply(iq, c(1,3), mean) > dim(iq_mean_rx) [1] 128 2751 > contour(abs(iq_mean_rx))

画出来是下边这样,这个是一个水流测算的雷达数据,因为ADC是实数信号,所以距离FFT做出来是对称的,实际只取一半。横坐标是距离,纵坐标是时间,还是可以看出来水流的发生和结束以及水面的变化。

r语言和matlab的区别 r语言和matlab哪个好_数据

没法像MATLAB或者matplotlib那样鼠标点击操作,只能通过命令行添加标记辅助线。 当然也可以安装扩展包来扩充绘图功能。

感想

挺方便高效的其实。R语言真的是一个很高效的工具,比如说你的表弟表妹拿着一个高三的压轴题问你做的对不对的时候,你说“行,我看看,你先去休息一下。”然后在命令行敲一个'R',两三下把规整的图形画出来,极值积分单调区间一目了然,然后你出去跟他说“这里不对,你再想想”,前后不到3分钟。

当然R能做的更多。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3