n=input('n= ');
A=ones(n);
A(2:n,2)=0;
A(2,2:n)=0;
A(4:n,4)=0;
A(4,4:n)=0;
A(6:n,6)=0;
A(6,6:n)=0
I wrote that code for n=7 but I want this to be true for every n value, how can i convert the code?

Réponses (2)

Walter Roberson
Walter Roberson le 4 Avr 2021

1 vote

n=input('n= ');
A=ones(n);
A(2:n,2)=0;
A(2,2:n)=0;
A(4:n,4)=0;
A(4,4:n)=0;
A(n-1:n,n-1)=0;
A(n-1,n-1:n)=0;
Possibly 4 is ceil(n/2) but if so you need to decide what you want to do if n is even.

1 commentaire

Elif Kalender
Elif Kalender le 4 Avr 2021
Thank you so much.I will look at it with that perspective.

Connectez-vous pour commenter.

the cyclist
the cyclist le 4 Avr 2021

1 vote

Assuming that what you wanted was alternating pattern of 1's and 0's, regardless of how large n is, then this should do what you want:
n=input('n= ');
A=ones(n);
for ii = 2:2:n
A(ii:n,ii)=0;
A(ii,ii:n)=0;
end

Catégories

En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by