how to create this matrix?

1 回表示 (過去 30 日間)
diadalina
diadalina 2018 年 12 月 22 日
コメント済み: Stephan 2018 年 12 月 22 日
can anyone help me to construct this matrix
blj=(-2)^j-l if l<j
blj=1 if l=j
blj=0 if l>j

採用された回答

Brian Hart
Brian Hart 2018 年 12 月 22 日
編集済み: Brian Hart 2018 年 12 月 22 日
Hi diadalina,
I think it would look something like this...
iLength = 5; %rows
jLength = 7; %cols
b=zeros(iLength, jLength);
for i = 1:iLength
for j = 1:jLength
if i == j; b(i,j) = 1; end
if i < j; b(i,j) = (-2)^(j-i); end
end
end
disp(b)
gives a result of:
1 -2 4 -8 16 -32 64
0 1 -2 4 -8 16 -32
0 0 1 -2 4 -8 16
0 0 0 1 -2 4 -8
0 0 0 0 1 -2 4
  2 件のコメント
Guillaume
Guillaume 2018 年 12 月 22 日
It is unclear if the formula in the question is as written or which would make more sense. One thing for sure, it's not likely to be which is what you calculate.
Brian Hart
Brian Hart 2018 年 12 月 22 日
Yep, missed a set of parenthesis. Corrected, thanks.

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

その他の回答 (2 件)

Guillaume
Guillaume 2018 年 12 月 22 日
編集済み: Guillaume 2018 年 12 月 22 日
Assume your formula is and not what you have written:
nrows = 5; %number of rows. You haven't specified
ncols = 7; %number of columns. You haven't specified
b = toeplitz([1, zeros(1, nrows-1)], (-2).^(0:ncols-1))
If the formula is what you have actually written, , then
b = triu((-2).^(1:ncols) - (1:nrows)', 1) + eye(nrows, ncols)
  1 件のコメント
Stephan
Stephan 2018 年 12 月 22 日
+1

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


Stephan
Stephan 2018 年 12 月 22 日
編集済み: Stephan 2018 年 12 月 22 日
Hi,
do you want a square matrix? Is the calculation correct without any brackets? My calculation follows the way you wrote the formula - if wrong set the brackets corresponding to your expected result.
Then try:
k=3;
[m,n]=meshgrid(1:k);
A=triu((-2).^n-m,1) + eye(k)
Best regards
Stephan

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by