problem of matrix operations

1 Ansicht (letzte 30 Tage)
mahesh chathuranga
mahesh chathuranga am 30 Sep. 2013
Bearbeitet: Andrei Bobrov am 3 Okt. 2013
i have a n*n matrix. i want to obtain (row number-column number) matrix.for a 4*4 matrix result should be
[0 -1 -2 -3;
1 0 -1 -2;
2 1 0 -1;
3 2 1 0];
i want to do this for any (n*n) matrix.is there any method to do this.

Akzeptierte Antwort

Honglei Chen
Honglei Chen am 30 Sep. 2013
You can do
rownumber = 4
colnumber = 4
bsxfun(@minus,(1:rownumber)',1:colnumber)
Or considering the special form of this matrix, you can just do
toeplitz((0:rownumber-1)',0:-1:-colnumber+1)

Weitere Antworten (2)

Azzi Abdelmalek
Azzi Abdelmalek am 30 Sep. 2013
a=rand(4) % Example
n=size(a,1)
bsxfun(@minus,repmat((1:n)',1,n),(1:n))

Andrei Bobrov
Andrei Bobrov am 30 Sep. 2013
Bearbeitet: Andrei Bobrov am 3 Okt. 2013
toeplitz(0:3,-(0:3))

Kategorien

Mehr zu Resizing and Reshaping 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!

Translated by