# how to create this matrix?

1 view (last 30 days)
Commented: Stephan on 22 Dec 2018
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 on 22 Dec 2018
Edited: Brian Hart on 22 Dec 2018
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 CommentsShowHide 1 older comment
Brian Hart on 22 Dec 2018
Yep, missed a set of parenthesis. Corrected, thanks.

Guillaume on 22 Dec 2018
Edited: Guillaume on 22 Dec 2018
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)
Stephan on 22 Dec 2018
+1

Stephan on 22 Dec 2018
Edited: Stephan on 22 Dec 2018
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