matlab 矩阵卷积的问题
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 11:13:50
matlab 矩阵卷积的问题
matlab 矩阵卷积的问题
matlab 矩阵卷积的问题
注意matlab的数组下标是从1开始的,所以你原来的程序有点错误
帮你改过来了
[N1,M1]=size(x);
[N2,M2]=size(p);
y=zeros(N1+N2-1,M1+M2-1);
for n=1:(N1+N2-1)
for m=1:(M1+M2-1)
y1=0;
for k=max(1,n-N2+1):min(n,N1)
for l=max(1,m-M2+1):min(m,M1)
y1=y1+x(k,l)*p(n-k+1,m-l+1);
end
end
y(n,m)=y1;
end
end
二维卷积运算是O(n^4)量级的计算,随着输入矩阵变大,运算次数很快上升
系统自带conv2是做过很多优化的,我试了一下计算两个100x100大小矩阵的
二维矩阵的卷积,用系统自带的conv2只需不到0.1秒的时间
而用上边代码的四重循环写的二维卷积计算,要超过2.5秒的时间
而且随着矩阵大小变大,这个时间快速增长
不知道你用的x矩阵和p矩阵的大小是怎样,如果比较大的话
可能需要的时间会很长,导致一直是busy的状态.
一般情况下,出现一直是busy的状态要不就是死循环,要不就是要算很久没算完
你原来的代码只是下标有问题,输出的矩阵第一行,第一列全为0,而少了最后一行和一列
在x和p都比较小的情况下,是可以很快计算出结果的
所以不是死循环的状态
只是当x和p矩阵比较大的情况,由于算法的时间复杂度较高
不能在短时间内得到结果,所以才会一直busy
可能需要几分钟或者更长的时间才能完成计算
matlab 矩阵卷积的问题
两个矩阵卷积用matlab怎么求
什么是矩阵卷积?在matlab的help里看到矩阵卷积函数的介绍,q = conv(p,p),p是一个向量,请问矩阵卷积运算的具体原理是什么?
用Matlab求两个函数的卷积
matlab卷积的问题y=u(t+1)-u(t-1);求yy=y*y*是卷积的意思哦
matlab求卷积
matlab 如何实现两个连续函数的卷积,并得到卷积函数
如何随机提取matlab矩阵中一个元素的位置关于matlab矩阵问题
怎样随机给matlab中矩阵的一个元素赋值matlab中矩阵问题
我的matlab里怎么没有卷积conv函数
怎样用matlab计算两个有限长序列的卷积
利用MATLAB函数文件,完成任意两个序列的卷积
如何用matlab实现两个函数的卷积运算
matlab求卷积要用matlab求两个门函数的卷积.并且最后能画出在时域的图形.
matlab中矩阵A,子矩阵B,如何求得剩余构成矩阵C的问题
请教matlab中矩阵某元素个数的编程问题
矩阵的求解.matlab
MATLAB 解决冲击函数卷积