2013-11-16 3 views
0

Я пытался использовать MATLAB, чтобы найти верхнюю и нижнюю диагональную матрицу в MATLABкак найти верхнюю и нижнюю диагональная матрица MATLAB

здесь идея

, если у меня есть матрица 4x4

1 2 3 4 
5 6 7 8 
9 10 11 12 
13 14 15 16 

главной диагонали является

1 6 11 16 

но вторая верхняя диагональ

2 7 12 

и тем ниже

5 10 15 

так есть triu и tril но писать или использовать любую другую функцию в MATLAB, чтобы найти это верхняя и нижняя диагональ в матрице.

ответ

1

Вы можете использовать простую линейную индексацию для получения любой диагонали матрицы. Все, что вам нужно знать, это линейный индекс первого элемента и количество строк в матрице:

>> [m n] = size(A); 

Получить главную диагональ на матрице (первый индекс элемента 1):

>> A(1 : (m+1) : end) 

Получить нижние диагонали (первый индекс равен 2):

>> A(2 : (m+1) : end) 

Получить верхнюю диагональ (первый индекс является m+1):

>> A((m+1) : (m+1) : end) 
+0

Большое спасибо сэр –

2

просто использовать diag, например

diag(A,0) % main diagonal, also diag(A) 
diag(A,-1) % lower diagonal 
diag(A,1) % upper ... 
+0

спасибо, сэр, что эта работа мне –

+1

@HaiderAli Пожалуйста, отметьте один ответ, как «принято», если это то, что вам нужно –

Смежные вопросы