Evaluating symbolic matrix equations

조회 수: 17 (최근 30일)
Nishanth Rao
Nishanth Rao 2021년 7월 10일
댓글: zym 2022년 7월 27일
I have a symbolic matrix of size 20x3, which I have created using the sym() function. I have another matrix B which is calculated using certain rows of A, or in general the matrix B is a function of A i.e., . Once I obtain all the numerical entries of A, how can I evaluate B after substituting A with the obtained numerical values?
A = sym('a', [20, 3]); % Create a 20x3 symbolic matrix
% Create a matrix B whose values depend on some function of A's elements
B(1, :) = cross(A(1, :), A(3, :));
B(2, :) = A(5, :) .* A(10, :) .* A(20, :);
% Substitute A with numerical values
A = subs(A, A, rand(20, 3)); % Now, A is a 20x3 matrix with random entries
% How do I evaluate the matrix B?
subs(B) ?
subs(B, A) ? % Both commands aren't working

채택된 답변

Nishanth Rao
Nishanth Rao 2021년 7월 10일
After some hit and trials, I found the solution:
A = sym('a', [20, 3]); % Create a 20x3 symbolic matrix
% Create a matrix B whose values depend on some function of A's elements
B(1, :) = cross(A(1, :), A(3, :));
B(2, :) = A(5, :) .* A(10, :) .* A(20, :);
% Substitute B with A, where A is substitued with 20x3 numerical entries:
B = subs(B, A, rand(20, 3));
  댓글 수: 7
Walter Roberson
Walter Roberson 2022년 7월 23일
It is a syntax restriction. When you use the {} form of subs(), the second parameter must be a cell array in which each entry is a scalar symbolic variable, and the third parameter must be a cell array the same size as the second parameter
A = sym('a', [2, 2]);
B = sym('b', [2, 2]);
C=A*B;
Anum = rand(2,2);
Bnum = rand(2,2);
Ac = num2cell(A);
Bc = num2cell(B);
Anc = num2cell(Anum);
Bnc = num2cell(Bnum);
subs(C, [Ac, Bc], [Anc, Bnc])
ans = 
note here that [Ac, Bc] is a cell array, and [Anc, Bnc] is a cell array the same size
zym
zym 2022년 7월 27일
Thank you for the clarification. This is very useful

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

KSSV
KSSV 2021년 7월 10일
Read about double.
A = subs(A, A, rand(20, 3));
A = double(A) ;
  댓글 수: 3
KSSV
KSSV 2021년 7월 10일
subs(B) what you want to substitute here? In the above line you have substituted in A. Also the dimensions of A and B are different. How you want to substitute?
Nishanth Rao
Nishanth Rao 2021년 7월 10일
편집: Nishanth Rao 2021년 7월 10일
Please look at the accepted answer. I am sorry if the question isn't clear. For your convenience, I'll explain it here.
I have a symbolic matrix A. Now the matrix B (may have different size than A), is some function of the matrix A. Or to be even clearer, the matrix B depends on some of the elements of A. In general, I can write it mathematically as . Now, lets say from say sensor measurements (for eg.,), I will get all the numerical entries of A. How do I calculate the matrix B?

댓글을 달려면 로그인하십시오.

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by