99x99 matrix

4 vues (au cours des 30 derniers jours)
Luke chin
Luke chin le 15 Oct 2021
Réponse apportée : Chunru le 15 Oct 2021
create a 99x99 matrix with ones on both diagonals and zeros everywhere otherwise

Réponses (4)

Image Analyst
Image Analyst le 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 commentaire
C B
C B le 15 Oct 2021
great wayorring flip i liked it

Connectez-vous pour commenter.


Chunru
Chunru le 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 le 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 le 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

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by