how to create this matrix?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
diadalina
am 22 Dez. 2018
Kommentiert: Stephan
am 22 Dez. 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
0 Kommentare
Akzeptierte Antwort
Brian Hart
am 22 Dez. 2018
Bearbeitet: Brian Hart
am 22 Dez. 2018
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 Kommentare
Guillaume
am 22 Dez. 2018
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.
Weitere Antworten (2)
Guillaume
am 22 Dez. 2018
Bearbeitet: Guillaume
am 22 Dez. 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
am 22 Dez. 2018
Bearbeitet: Stephan
am 22 Dez. 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
0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!