matlab中函数声明的访问
matlab中的卷积函数是matlab中函数声明的访问,matlab,convolution,Matlab,Convolution,matlab中的卷积函数是conv()。我的问题是如何获得函数本身的实际实现?如果您想了解conv()的工作原理或制作自己版本的conv函数,您可以随时键入 open conv 在命令窗口中。然后,您可以查看原始函数,并(如有必要)将其保存在新名称下,并使用您编辑的版本。如果您想了解conv()的工作原理或制作自己的conv函数版本,您可以随时键入 open conv 在命令窗口中。然后,您可以查看原始函数,并(如有必要)将其保存在新名称下并使用编辑后的版本。有两种方法: 方法1 当您实现c
conv()
。我的问题是如何获得函数本身的实际实现?如果您想了解conv()的工作原理或制作自己版本的conv函数,您可以随时键入
open conv
在命令窗口中。然后,您可以查看原始函数,并(如有必要)将其保存在新名称下,并使用您编辑的版本。如果您想了解conv()的工作原理或制作自己的conv函数版本,您可以随时键入
open conv
在命令窗口中。然后,您可以查看原始函数,并(如有必要)将其保存在新名称下并使用编辑后的版本。有两种方法:
conv()
或任何函数(用户定义或内置)时,只需右键单击该函数,然后单击打开即可查看函数脚本
open conv()
conv()
可以是任何函数
卷积函数:
function c = conv(a, b, shape)
%CONV Convolution and polynomial multiplication.
% C = CONV(A, B) convolves vectors A and B. The resulting vector is
% length MAX([LENGTH(A)+LENGTH(B)-1,LENGTH(A),LENGTH(B)]). If A and B are
% vectors of polynomial coefficients, convolving them is equivalent to
% multiplying the two polynomials.
%
% C = CONV(A, B, SHAPE) returns a subsection of the convolution with size
% specified by SHAPE:
% 'full' - (default) returns the full convolution,
% 'same' - returns the central part of the convolution
% that is the same size as A.
% 'valid' - returns only those parts of the convolution
% that are computed without the zero-padded edges.
% LENGTH(C)is MAX(LENGTH(A)-MAX(0,LENGTH(B)-1),0).
%
% Class support for inputs A,B:
% float: double, single
%
% See also DECONV, CONV2, CONVN, FILTER, XCORR, CONVMTX.
%
% Note: XCORR and CONVMTX are in the Signal Processing Toolbox.
% Copyright 1984-2013 The MathWorks, Inc.
if ~isvector(a) || ~isvector(b)
error(message('MATLAB:conv:AorBNotVector'));
end
if nargin < 3
shape = 'full';
end
if ~ischar(shape) && ~(isstring(shape) && isscalar(shape))
error(message('MATLAB:conv:unknownShapeParameter'));
end
if isstring(shape)
shape = char(shape);
end
% compute as if both inputs are column vectors
c = conv2(a(:),b(:),shape);
% restore orientation
if shape(1) == 'f' || shape(1) == 'F' % shape 'full'
if length(a) > length(b)
if size(a,1) == 1 %row vector
c = c.';
end
else
if size(b,1) == 1 %row vector
c = c.';
end
end
else
if size(a,1) == 1 %row vector
c = c.';
end
end
end
if isstring(shape)
shape = char(shape);
end
% compute as if both inputs are column vectors
c = conv2(a(:),b(:),shape);
% restore orientation
if shape(1) == 'f' || shape(1) == 'F' % shape 'full'
if length(a) > length(b)
if size(a,1) == 1 %row vector
c = c.';
end
else
if size(b,1) == 1 %row vector
c = c.';
end
end
else
if size(a,1) == 1 %row vector
c = c.';
end
end
函数c=conv(a、b、形状)
%CONV卷积和多项式乘法。
%C=CONV(A,B)将向量A和B卷积。得到的向量为
%最大长度([长度(A)+长度(B)-1,长度(A),长度(B)])。如果A和B是
%多项式系数的向量,卷积它们相当于
%将两个多项式相乘。
%
%C=CONV(A,B,SHAPE)返回卷积的一个子段和大小
%按形状指定:
%“full”-(默认)返回完整卷积,
%“same”-返回卷积的中心部分
%那和A一样大。
%“valid”-仅返回卷积的那些部分
%在没有零填充边的情况下计算的。
%长度(C)是最大值(长度(A)-MAX(0,长度(B)-1),0)。
%
%输入A、B的类支持:
%浮动:双人、单人
%
%另请参见DECONV、CONV2、CONVN、FILTER、XCORR、CONVMTX。
%
%注:XCORR和CONVMTX在信号处理工具箱中。
%版权所有1984-2013 MathWorks公司。
如果~isvector(a)| | ~isvector(b)
错误(消息('MATLAB:conv:AorBNotVector');
终止
如果nargin<3
形状='满';
终止
if~ischar(shape)&&&~(isstring(shape)&&isscalar(shape))
错误(消息('MATLAB:conv:unknownShapeParameter');
终止
如果是字符串(形状)
形状=字符(形状);
终止
%就像两个输入都是列向量一样进行计算
c=conv2(a(:),b(:),形状);
%恢复方向
如果形状(1)='f'| |形状(1)='f'%shape'已满'
如果长度(a)>长度(b)
如果大小(a,1)=1%行向量
c=c';
终止
其他的
如果大小(b,1)=1%行向量
c=c';
终止
终止
其他的
如果大小(a,1)=1%行向量
c=c';
终止
终止
终止
如果是字符串(形状)
形状=字符(形状);
终止
%就像两个输入都是列向量一样进行计算
c=conv2(a(:),b(:),形状);
%恢复方向
如果形状(1)='f'| |形状(1)='f'%shape'已满'
如果长度(a)>长度(b)
如果大小(a,1)=1%行向量
c=c';
终止
其他的
如果大小(b,1)=1%行向量
c=c';
终止
终止
其他的
如果大小(a,1)=1%行向量
c=c';
终止
终止
更新:
这与问题无关。无论如何,您想要计算卷积积分,但matlab中的函数定义是:
w=conv(u,v)
返回向量u和v的卷积。如果u和v是多项式系数的向量,则将它们卷积相当于将两个多项式相乘
假设这是离散的卷积,并且没有给出结果的公式。如果需要计算结果的公式,请使用符号工具箱计算公式
见此有两种方法:
conv()
或任何函数(用户定义或内置)时,只需右键单击该函数,然后单击打开即可查看函数脚本
open conv()
conv()
可以是任何函数
卷积函数:
function c = conv(a, b, shape)
%CONV Convolution and polynomial multiplication.
% C = CONV(A, B) convolves vectors A and B. The resulting vector is
% length MAX([LENGTH(A)+LENGTH(B)-1,LENGTH(A),LENGTH(B)]). If A and B are
% vectors of polynomial coefficients, convolving them is equivalent to
% multiplying the two polynomials.
%
% C = CONV(A, B, SHAPE) returns a subsection of the convolution with size
% specified by SHAPE:
% 'full' - (default) returns the full convolution,
% 'same' - returns the central part of the convolution
% that is the same size as A.
% 'valid' - returns only those parts of the convolution
% that are computed without the zero-padded edges.
% LENGTH(C)is MAX(LENGTH(A)-MAX(0,LENGTH(B)-1),0).
%
% Class support for inputs A,B:
% float: double, single
%
% See also DECONV, CONV2, CONVN, FILTER, XCORR, CONVMTX.
%
% Note: XCORR and CONVMTX are in the Signal Processing Toolbox.
% Copyright 1984-2013 The MathWorks, Inc.
if ~isvector(a) || ~isvector(b)
error(message('MATLAB:conv:AorBNotVector'));
end
if nargin < 3
shape = 'full';
end
if ~ischar(shape) && ~(isstring(shape) && isscalar(shape))
error(message('MATLAB:conv:unknownShapeParameter'));
end
if isstring(shape)
shape = char(shape);
end
% compute as if both inputs are column vectors
c = conv2(a(:),b(:),shape);
% restore orientation
if shape(1) == 'f' || shape(1) == 'F' % shape 'full'
if length(a) > length(b)
if size(a,1) == 1 %row vector
c = c.';
end
else
if size(b,1) == 1 %row vector
c = c.';
end
end
else
if size(a,1) == 1 %row vector
c = c.';
end
end
end
if isstring(shape)
shape = char(shape);
end
% compute as if both inputs are column vectors
c = conv2(a(:),b(:),shape);
% restore orientation
if shape(1) == 'f' || shape(1) == 'F' % shape 'full'
if length(a) > length(b)
if size(a,1) == 1 %row vector
c = c.';
end
else
if size(b,1) == 1 %row vector
c = c.';
end
end
else
if size(a,1) == 1 %row vector
c = c.';
end
end
函数c=conv(a、b、形状)
%CONV卷积和多项式乘法。
%C=CONV(A,B)将向量A和B卷积。得到的向量为
%最大长度([长度(A)+长度(B)-1,长度(A),长度(B)])。如果A和B是
%多项式系数的向量,卷积它们相当于
%将两个多项式相乘。
%
%C=CONV(A,B,SHAPE)返回卷积的一个子段和大小
%按形状指定:
%“full”-(默认)返回完整卷积,
%“same”-返回卷积的中心部分
%那和A一样大。
%“valid”-仅返回卷积的那些部分
%在没有零填充边的情况下计算的。
%长度(C)是最大值(长度(A)-MAX(0,长度(B)-1),0)。
%
%输入A、B的类支持:
%浮动:双人、单人
%
%另请参见DECONV、CONV2、CONVN、FILTER、XCORR、CONVMTX。
%
%注:XCORR和CONVMTX在信号处理工具箱中。
%版权所有1984-2013 MathWorks公司。
如果~isvector(a)| | ~isvector(b)
错误(消息('MATLAB:conv:AorBNotVector');
终止
如果nargin<3
形状='满';
终止
if~ischar(shape)&&&~(isstring(shape)&&isscalar(shape))
错误(消息('MATLAB:conv:unknownShapeParameter');
终止
如果是字符串(形状)
形状=字符(形状);
终止
%就像两个输入都是列向量一样进行计算
c=conv2(a(:),b(:),形状);
%恢复方向
如果形状(1)='f'| |形状(1)='f'%shape'已满'
如果长度(a)>长度(b)