MATLAB: How to generate a matrix with number of lines inserted from keyboard

keyboard inputmatrix

I have to generate a matrix with i lines and j=i+1 collumns whose elements:
=2 if i=j;
=-1 if | i -j |=1;
=0 otherwise.
Here's my attempt at solving this problem:
prompt='Insert number of lines';
i=input(prompt)
j=i+1
% getting the number of lines and collumns
if i==j
A=2*ones(i,j);
end
% checking the first condition for i and j
else if abs(i-j)==1
A=-1*ones(i,j);
end
% checking the second condition for i and j
else
A=zeros(i,j)
% checking the third condition for i and j
end
end
A
% displaying matrix A
And I get this error when I try run it:
else if abs(i-j)==1
|
Error: Illegal use of reserved keyword "else".
I don't understand what I'm doing wrong.

Best Answer

  • You had too many end statements. They were defining very short if blocks, and so some of those blocks did not begin correctly as a result.
    Your code still has problems (it is not doing what you want it to). Since this appears to be a homework assignment, I will defer to you to get it running correctly.
    This runs:
    if i==j
    A=2*ones(i,j);
    % checking the first condition for i and j
    elseif abs(i-j)==1
    A=-1*ones(i,j);
    % checking the second condition for i and j
    else
    A=zeros(i,j)
    % checking the third condition for i and j
    end