Clear Filters
Clear Filters

how to create a matrix with variables in it?

160 views (last 30 days)
siva senthil
siva senthil on 12 Feb 2013
Commented: John D'Errico on 16 Jun 2024
for eg., to create following matrix and work on it,
A=[x1 x1*x2 ; x1^2 x2^2]

Answers (2)

Kye Taylor
Kye Taylor on 12 Feb 2013
Edited: Kye Taylor on 12 Feb 2013
The best answer to your question will likely depend on what you want to do with A. Sometimes, I find the following commands useful, which will create an anonymous function, A, that takes two inputs, x1 and x2 and returns the matrix you describe. Of course, this assumes you have values for the variables x1 and x2.
A = @(x1,x2)[x1,x1*x2;x1^2,x2^2]
And compute, for example, with
det(A(1,2))
If you want A to be symbolic, you can begin using the following command
syms x1 x2
A = [x1,x1*x2;x1^2,x2^2]
Then compute, for example, with
det(A)

Aman Kumar
Aman Kumar on 23 Mar 2021
syms x1 x2
A = [x1,x1*x2;x1^2,x2^2]
  5 Comments
Steven Lord
Steven Lord on 16 Jun 2024
What does "doesn't it work" mean in this context?
  • Do you receive warning and/or error messages? If so the full and exact text of those messages (all the text displayed in orange and/or red in the Command Window) may be useful in determining what's going on and how to avoid the warning and/or error.
  • Does it do something different than what you expected? If so, what did it do and what did you expect it to do?
  • Did MATLAB crash? If so please send the crash log file (with a description of what you were running or doing in MATLAB when the crash occured) to Technical Support so we can investigate.
John D'Errico
John D'Errico on 16 Jun 2024
Let me guess why it does not work. In what you wrote, what is s?
syms x
A=[4*x^2+8*x+5 -8*x -5;8x -4*x^2-16*x 4*x;s 4*s -9]
Do you see that you defined x as a sym, but how about s?
If you define all of the variables properly, of course it will work.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!