matlab中的零位矩阵
我有一个52989x2的信号y。我想做的是零填充它,直到我得到信号y_mp3 66379 x 2。 下面是我的代码示例:matlab中的零位矩阵,matlab,matrix,zero-pad,Matlab,Matrix,Zero Pad,我有一个52989x2的信号y。我想做的是零填充它,直到我得到信号y_mp3 66379 x 2。 下面是我的代码示例: P = 13750 y= [zeros(1,P),w]; 我经常收到这样的错误:被连接的矩阵的维数不一致。 我试图切换1和P或2参数,但仍然没有效果。 有人能澄清我的错误吗 编辑: 我尝试了以下建议,但仍然是一样的: P = length(y)-length(y_mp3); y_mp3_p = y_mp3; padsize = P / 2; padarray(y_mp3_p
P = 13750
y= [zeros(1,P),w];
我经常收到这样的错误:被连接的矩阵的维数不一致。
我试图切换1和P或2参数,但仍然没有效果。
有人能澄清我的错误吗
编辑:
我尝试了以下建议,但仍然是一样的:
P = length(y)-length(y_mp3);
y_mp3_p = y_mp3;
padsize = P / 2;
padarray(y_mp3_p, [padsize 0]);
提前谢谢大家 您可以使用MATLAB
padarray()
函数。以下代码可能有效:
padsize = p / 2;
padarray(w, [padsize 0]);
或者
多亏了梅米特,我终于找到了它! 应该是:
P = size(y,1) - size(y_mp3,1);
padsize = P/2 ;
y_p = padarray(y_mp3, [padsize 0],'sym');
padarray
是解决方案,+1.Btw,使用size()函数而不是lenght(),因为length()函数可能会导致矩阵出现一些问题。代码中的命名有点混乱。我已经一行一行地修改了你的代码:Line1->P=size(y\u mp3,1)-size(y,1);Line2->padsize=P/2;Line3->y_p=padarray(y,[padsize 0]);我颠倒了第一行,否则P是负数。现在看起来我是零填充的,但是太多了:)我得到的是80489x2而不是66739x2。你确定上面的代码吗。你们问过zeropad,但这段代码是否接受y信号矩阵的对称性?无论如何,如果你这么说,我很高兴能工作。。
P = size(y,1) - size(y_mp3,1);
padsize = P/2 ;
y_p = padarray(y_mp3, [padsize 0],'sym');