Matlab向量返回多个向量

时间:2015-09-29 20:17:09

标签: matlab vector return signal-processing

num = zeros(1,freq);
den = zeros(1,freq);
for R = 1:freq
    [num(R), den(R)]=butter(4, [0.1 0.9]);
end

我认为这是微不足道的,但是一旦我运行它,我得到:

  

在作业A(I)= B中,B和I中的元素数必须相同。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

你做错了是numden都包含多个系数:

  

[b,a] = butter(n,Wn)返回具有归一化截止频率Wn的n阶低通数字巴特沃斯滤波器的传递函数系数。

     

ba - 传递函数系数   行向量

documentation

复制

让代码正常工作的方法是将numden设置为矩阵或单元格数组:

num = zeros(freq,4);
den = zeros(freq,4);
for R = 1:freq
    [num(R,:), den(R,:)]=butter(4, [A(R) B(R)]); % matrix
end
for R = 1:freq
    [num{R}, den{R}]=butter(4, [A(R) B(R)]); % cell
end

可能矩阵更适合您的目的。