MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Kaelyn on 16 Oct 2013

I want to define a square located at i=1 to a certain distance down and across. The matrix I have so far is

n=10; A=zeros(n,n); for i=1:n*n A(1+i)=i; end

My square starts at i=1 and four down and four across I would like to make the other area have a value of 0. I need to change the size of the square when n changes.

*No products are associated with this question.*

Answer by dpb on 16 Oct 2013

Edited by dpb on 16 Oct 2013

Accepted answer

>> n=6; % overall size s=4; % size of square r=1; c=1; % row,column upper left corner A=zeros(n); A(r:r+s-1,c:c+s-1)=reshape(1:s*s,s,[]); >> A A = 1 5 9 13 0 0 2 6 10 14 0 0 3 7 11 15 0 0 4 8 12 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >>

Salt to suit...for your example, r=c=1 of course.

You'll want error-checking, etc., etc., etc., ...

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/90350#comment_174562

Can you post the expected result