How to assign a symbolic variable to a location inside a matrix?

3 views (last 30 days)
I have simplified the problem a little bit.
syms A
x = [A,0;0,0] %this works
y = zeros(2)
y(1,1) = A %THIS DOESNT WORK. WHY NOT?
Since i'm using this in a large function i really need to be able to assign symbolic variable to a matrix using it's row and column number. Please help.

Accepted Answer

Steven Lord
Steven Lord on 13 Jan 2020
In your expression y(1, 1) = A the expression on the left of the equals sign refers to a double array while the expression on the right is a sym array. In order to perform that assignment MATLAB tries to convert the sym array A into a double value. It can't (what's the numeric value of the symbolic variable A?) so it throws an error.
You could either give the variable A a numeric value, so that MATLAB can convert that value into a double to perform the assignment, or you can create y initially as a sym array so assigning the sym array A into a piece of that sym array requires no conversion.
A = sym(4);
y = zeros(2);
y(1, 1) = A % Note that y remains a double array
syms B
y2 = sym(zeros(2)); % or zeros(2, 'sym')
y2(1, 1) = B % No conversion necessary
  1 Comment
Chris Verhoeven
Chris Verhoeven on 13 Jan 2020
Thank you. With your explenation I understand why my approach didn't work.
Kind regards,
Chris

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!