How Can I Efficiently Construct a Specific Matrix in MATLAB?

  • Thread starter Thread starter azdang
  • Start date Start date
  • Tags Tags
    Matlab Matrix
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 2K views
azdang
Messages
80
Reaction score
0
Hi. I'm not sure if anyone here knows MATLAB, but I'm horrible with it. I have to write a program, which I actually figured out how to do, except that I have to first construct a certain matrix. I found one way to do it, but I'm sure it's not how my teacher wants it.

Let A be the nxn matrix with elements aij = -1 for i > j, aii=ain=1, 1<=i<=n, and zero everywhere else.

The only thing I've been successful with is to do this:

B=eye(n,n);B(1:n,n)=1; (This puts 1's on the diagonal and in the last column)

C=tril(-ones(n,n),-1); (This creates a lower triangular matrix with -1's below the diagonal)

Then, A = B+C.

I am sure there must be a more efficient way to construct this matrix that my teacher is expecting, but I'm not sure what it is. Does anyone who has experience with MATLAB know how I might be able to do this? Thank you!
 
Physics news on Phys.org
You could do it with for loops, but you've recognised some in-built functions of MATLAB and taken advantage of them (correctly!). The best person to ask what is required, of course, is your teacher!