create a matrix in a function

1 view (last 30 days)
I have to create a function called ssolve. in the function i need to create an array that can accept 3 variables a, b, n. these variables need to be placed in a matrix. example a needs to be in row 1 column 2, and b needs to be in row 20 columns 1-19. ones must be diagonal, and the rest are zero. in another array, (1by20) i need to have the first 16 to be 1-16, the 17th must be n-2, 18th must be 0, and the last must be n. how can I put that in, ive tried
c=ones(1,20);
m=diag(c);
m(1,2)=a;
m(20,:)=[b(1,19) 1];
but i get an error, what am i doing wrong?

Accepted Answer

Star Strider
Star Strider on 6 Sep 2014
You’re close!
Change the m(20,:) assignment to:
m(20,:)=[b*ones(1,19) 1];
MATLAB creates automatically incremented vectors using the colon ‘:’ operator. To create a vector that goes from 1 to 7:
v = 1:7;
If you wanted to change the 5th element of v here to 100:
v(5) = 100;
Display v to see the result by just typing v in the Command Window.
That is not the exact answer to the second part of your question, but it will get you started.
  2 Comments
Tony Montgomery
Tony Montgomery on 6 Sep 2014
THANK YOU THANK YOU THANK YOU. You really are like my best friend right now. I'm sorry to keep asking questions but I'm new at this and not very good at it so thank you so much again!!
Star Strider
Star Strider on 6 Sep 2014
My pleasure!
Ask away!
We’ve all been there.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!