为什么MATLAB中两个数组的卷积会导致‘;南’;价值观

为什么MATLAB中两个数组的卷积会导致‘;南’;价值观,matlab,nan,convolution,wavelet,Matlab,Nan,Convolution,Wavelet,我试图用一个尺度小波来计算曲线的卷积。使用MATLAB卷积函数,结果在开始时有大量的“NaN”值,我想了解这些值的来源 我对卷积的直觉是,情况不应该是这样,因为我已经在卷积的每个点定义了上界。我想象这种卷积的方式是,小波被翻转,然后在曲线上从左向右移动。当它移动时,小波与曲线交点下方的区域存储在输出中。如果是这种情况,结果输出应该存在,并且在卷积的所有点上都是正的,除非没有重叠且结果为0 %曲线是对呈现的刺激的一组反应, %下面是一个例子: 曲线=[0.0500,0.1000,0.1500,0.

我试图用一个尺度小波来计算曲线的卷积。使用MATLAB卷积函数,结果在开始时有大量的“NaN”值,我想了解这些值的来源

我对卷积的直觉是,情况不应该是这样,因为我已经在卷积的每个点定义了上界。我想象这种卷积的方式是,小波被翻转,然后在曲线上从左向右移动。当它移动时,小波与曲线交点下方的区域存储在输出中。如果是这种情况,结果输出应该存在,并且在卷积的所有点上都是正的,除非没有重叠且结果为0

%曲线是对呈现的刺激的一组反应,
%下面是一个例子:
曲线=[0.0500,0.1000,0.1500,0.2000,0.3000,0.5000,0.8000;
11.6465, 14.8354, 5.0695, 0.4856, 0.5858, 0.2863, 0.3864];
%缩放后的墨西哥帽小波如下所示:
敏锐度=1000;
[mexh_y,mexh_x]=mexihat(-5,5,尖锐度);
最大响应=最大(曲线(2,:);
wav_x=mexh_x/100;
wav_y=mexh_y*(最大响应+1);
%这里wav_x是小波的x值,wav_y是小波的y值。
%我插值原始曲线以获得更多值,如下所示:
最大呈现=最大(曲线(1,:);
步骤=最大呈现/敏锐度;
sf_VAL_for_插值=[步长:步长:最大表示];
interp_曲线=interp1(曲线(1,:),曲线(2,:),用于插值的sf_值);
%现在我要执行一个卷积运算:
conv_res=conv(内部曲线,波形);

如总结中所述,产生的卷积包含许多我想理解的“NaN”值。

可能是因为
interp1
返回NaN值,容易检查
any(isnan(interp\u曲线))
。请参阅
interp1
的一节。Ah是有意义的。我最初没有注意到插值中有NaN值。谢谢@rinkert!