99x99 matrix

16 views (last 30 days)
Luke chin
Luke chin on 15 Oct 2021
Answered: Chunru on 15 Oct 2021
create a 99x99 matrix with ones on both diagonals and zeros everywhere otherwise

Answers (4)

Image Analyst
Image Analyst on 15 Oct 2021
Another way, even more compact:
A = eye(99) | fliplr(eye(99))
As long as it's not your homework you can use my code.
  1 Comment
C B
C B on 15 Oct 2021
great wayorring flip i liked it

Sign in to comment.


Chunru
Chunru on 15 Oct 2021
n = 9; %99
A = eye(n);
A(n:n-1:n*n-1) = 1; % anti-diagonal
A
A = 9×9
1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1

Image Analyst
Image Analyst on 15 Oct 2021
As long as it's not your homework you can use my code:
A = min(1, eye(99) + fliplr(eye(99)))

Chunru
Chunru on 15 Oct 2021
% For time comparison:
n = 1000;
timeit(@() bidiag1(n))
ans = 4.1086e-04
timeit(@() bidiag2(n))
ans = 0.0027
timeit(@() bidiag3(n))
ans = 0.0019
function bidiag1(n)
a = eye(n);
a(n:n-1:n*n-1) = 1;
end
function bidiag2(n)
a = eye(n) | fliplr(eye(n));
end
function bidiag3(n)
a = min(1, eye(n) + fliplr(eye(n)));
end

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!