How to create this patterned matrix?
7 ビュー (過去 30 日間)
古いコメントを表示
How do I create a matrix that looks like this?

0 件のコメント
採用された回答
その他の回答 (2 件)
Davide Masiello
2022 年 3 月 7 日
編集済み: Davide Masiello
2022 年 3 月 7 日
Generalizing for any nxn matrix
clear,clc
n = 9;
A = zeros(n);
for i = 1:n
A(i,i+1:n) = flip(i:n-1);
if i > 1
A(i,1:i) = flip(0:i-1);
end
end
which yields
A =
0 8 7 6 5 4 3 2 1
1 0 8 7 6 5 4 3 2
2 1 0 8 7 6 5 4 3
3 2 1 0 8 7 6 5 4
4 3 2 1 0 8 7 6 5
5 4 3 2 1 0 8 7 6
6 5 4 3 2 1 0 8 7
7 6 5 4 3 2 1 0 8
8 7 6 5 4 3 2 1 0
However, in your example, the row starting with 7 is missing. I am not sure whether that's intentional or just a typo.
In the first instance, the code above can be arranged to remove rows starting with a certain value.
3 件のコメント
Davide Masiello
2022 年 3 月 7 日
Anytime! I guess you indeed wanted that row to be skipped. @Stephen's answer will do that very efficiently.
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!