Hello I would to figure out how to add poles into matrix from a for loop

1 回表示 (過去 30 日間)
Trevon Alvarado
Trevon Alvarado 2020 年 4 月 30 日
回答済み: Sai Sri Pathuri 2020 年 5 月 4 日
I am designing a band pass filter and I need to take the roots of the low pass filter roots and store them. Can you please help me with this.
sp2 = roots(Gain_den);
sp = sp2(real(sp2)<0)
%sp=[1.0000 + 0.0000i -0.2471 - 0.9660i 1.0000 + 0.0000i]
for k = 1:N_Stages
poles=[1 sp(k) 1]
p1=roots(poles)
end
I had an idea coding it like this:
sp2 = roots(Gain_den);
sp = sp2(real(sp2)<0)
%sp=[1.0000 + 0.0000i -0.2471 - 0.9660i 1.0000 + 0.0000i]
for k = 1:N_Stages
poles(k)=[1 sp(k) 1]
p1=roots(poles(k))
end
I had gotten this error when attempting to do it this way.
Unable to perform assignment because the left and right sides have a different number
of elements.
  1 件のコメント
darova
darova 2020 年 4 月 30 日
You want to assign 3 values
It's impossible poles(k) has only 1 place ( for one value )

サインインしてコメントする。

回答 (1 件)

Sai Sri Pathuri
Sai Sri Pathuri 2020 年 5 月 4 日
In the code,
poles(k)=[1 sp(k) 1]
you are assigning a row vector of size 1x3 to poles(k) with size 1x1. The error is due to mismatch between sizes.

カテゴリ

Help Center および File ExchangeFilter Banks についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by