
没有矩阵卷积的,只有向量卷积。当然,如果你硬要把向量理解为一个1n的矩阵,那也说的过去。
在vc60上验证过了
#include <stdioh>
#include <stringh>
char convolntion(char Mat1,// 向量1
char len1, // 向量1的长度
char Mat2,// 向量2
char len2, // 向量2的长度
char Result)// 向量1 X 向量2的结果
{
char i,j;
char p = NULL;
char ret;
ret = len1 + len2 - 1;
p = (char )malloc(ret len2);
memset(p, 0, ret len2);
for(j = 0; j < len2; j++)
{
for(i = 0; i < len1; i++)
{
(p + retj + i + j) = ((Mat1 + i)) ((Mat2 + j));
}
}
for (i = 0; i < ret; i++)
{
(Result + i) = 0;
for (j = 0; j < len2; j++)
{
(Result + i) += (p + i + j ret);
}
}
free(p);
p = NULL;
return ret;
}
void main()
{
char vector1[3] = {1,2,3};
char vector2[3] = {1,2,1};
char result[5];
char len;
len = convolntion(vector1, sizeof(vector1), vector2, sizeof(vector2), result);
return 0 ;
}
结果是 1 4 8 8 3
你在验证一下其他的吧。
代码有个限制就是所有的计算结果不能超过128,超过就会有问题。因为我所有的数据类型都写的char,你可以自己改
第一类换元法,就是反用复合函数的微分法。
f(x)=g(z),z=h(x),f'(x)=g'(z)h'(x),∫f'(x)dx=∫g'(z)h'(x)dx=∫g'(z)dz
如果g,h相对简单,就很容易求。
第一类换元法,一般不会改变被积函数的形式,比如原来是根式,还是根式;原来是分式,还是分式;原来是多项式,还是多项式;原来是三角函数,还是三角函数;原来是对数函数还是对数函数;原来是指数函数还是指数函数等等。
第一类换元法的基本特征,是在被积函数与自变量之间,插入一个中间变量:
f(x)=g(z),z=h(x)
比如ln(5x+2)-->ln(z),z=5x+2
第二类换元法,是要改变被积函数的形式的,通常用来积分根式、三角函数。比如,变换之后,没有根号了;三角函数的万能变换,将三角函数变成代数分式了。反三角函数变成三角函数了。
第二类换元法的基本形式是,f(x),x=g(t),f(x)=f(g(t)),
是在被积函数,自变量x,后面增加一级自变量t,取代了原来的自变量。
比如,lnx,x=e^t,lnx=lne^t=t
图中的两个,都是属于第二类换元法。
以上就是关于编写一个函数,函数名为convolntion用于计算两个矩阵的卷积,调用形式C=convoluti全部的内容,包括:编写一个函数,函数名为convolntion用于计算两个矩阵的卷积,调用形式C=convoluti、p),p是一个向量,请问矩阵卷积运算的具、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)