Pls help me generate circulant matrix

4 ビュー (過去 30 日間)
Janet
Janet 2012 年 3 月 6 日
編集済み: Emmanuel Ijiga 2016 年 10 月 2 日
I want to create M x M circulant matrix where M=128
h1=gallery('circul',M:M/2);
h2=gallery('circul',M:M/2);
h=horzcat(h1,h2);
But I get error with this coding.
pls see this link for more info
in page 2 (2.2 mimo-ofdm sytem)

採用された回答

Honglei Chen
Honglei Chen 2012 年 3 月 6 日
You may want to use
M:-1:M/2
in your code, or something like that.
M:M/2
returns an empty vector so there is nothing to construct from it.
BTW, you can also use linspace. Say you want 5 points between M and M/2, just do
linspace(M,M/2,5)
  1 件のコメント
Jan
Jan 2012 年 3 月 6 日
@melody: You do not have to create two equal matrices to join them. h = [h1, h1] is ok.

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

その他の回答 (1 件)

Emmanuel Ijiga
Emmanuel Ijiga 2016 年 10 月 2 日
編集済み: Emmanuel Ijiga 2016 年 10 月 2 日
M = 20;
input = randi([0 15], 1, M); %Random Input values between 0 and 15
CM = zeros(M,M); %Initialize M X M Circulant Matrix (CM)
CM(1,:) = input; %place the input values in the first row of CM
for kk = 1:(size(CM,1) - 1)
CM(kk+1,1) = CM(kk,end);
CM(kk+1,2:end) = CM([kk],[1:end - 1])
end

カテゴリ

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

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by