2.1 MATLAB编码技巧总结
总目录链接:https://blog.youkuaiyun.com/m0_37660088/article/details/122646925
一、Eb/No与SNR转换
M = 64;
k = log2(M);
EbNoVec = (4:10)';
rate = 1/2;
snrdB = EbNoVec(n) + 10*log10(k*rate); % 转换过程
二、从MATLAB仿真得到的.fig曲线图中提取数据
1、打开已经仿真得到的.fig图;
2、在命令行运行obj = get(gca,'children');
3、如果图中有一条曲线,直接运行x=get(obj, 'xdata')得到x坐标值,运行y=get(obj, 'ydata')得到y坐标值,
运行z=get(obj,'zdata')得到z坐标值;
4、如果图中有n条曲线,运行x=get(obj(i), 'xdata')得到x坐标值,运行y=get(obj(i), 'ydata')得到y坐标值,
运行z=get(obj(i),'zdata')得到z坐标值,其中i为需要得到的第i条线的值,0<i<=n;
三、MATLAB中for循环并行运行程序
for改为parfor即可启动并行运算,加快运行速度。
注意:有些for循环内的应用是不能启动并行运算的,无需修改parfor循环会自动退出并行运算。
四、MATLAB中实时编辑器出现不能打断点的问题
for循环改为parfor并行运算时,会出现调试过程中不能打断点的情况,改为for循环即可。
五、MATLAB怎么调用GPU进行运算
MATLAB中的程序是可以调用GPU进行运算的,对于矩阵运算会加快运行速度。
Igpu = gpuArray(I); % gpuArray即为CPU转到GPU的过程
I_gpuresult = gather(Igray_gpu); % gather即为GPU转到CPU的过程
只需要一个变量转换到GPU上运行后,后面会自动跟着在GPU上运行,转到CPU同理。