problem of matrix operations

조회 수: 1 (최근 30일)
mahesh chathuranga
mahesh chathuranga 2013년 9월 30일
편집: Andrei Bobrov 2013년 10월 3일
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.

채택된 답변

Honglei Chen
Honglei Chen 2013년 9월 30일
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)

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 9월 30일
a=rand(4) % Example
n=size(a,1)
bsxfun(@minus,repmat((1:n)',1,n),(1:n))

Andrei Bobrov
Andrei Bobrov 2013년 9월 30일
편집: Andrei Bobrov 2013년 10월 3일
toeplitz(0:3,-(0:3))

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by