Substitute multiple elements of multiple arrays with vectors

조회 수: 6 (최근 30일)
RODRIGO CRESPO MIGUEL
RODRIGO CRESPO MIGUEL 2023년 2월 1일
댓글: Dyuman Joshi 2023년 4월 3일
Hello. From solving the following matrix equation (with matrices of arbitrary size NxN) I obtain the solution to my problem functions cepsepssym:
syms cepsepssym [nvars nvars]
syms cBeps [nvars nvars]
syms cepsB [nvars nvars]
syms Bautocorr
equations = -cepsepssym*transpose(matrizGamma)-matrizGamma*cepsepssym+cepsB+cBeps+diag(vecsigmas)*Bautocorr==0;
sol=solve(equations,cepsepssym);
solvec=reshape(transpose(sol),1,[]);
But now I want to substitute each of the other variables (i.e., each element of the matrixes cBeps and cepsB, and Bautocorr) by a vector (given by known time dependent functions). Is there an easy way to do that?
Thank you very much in advance

답변 (1개)

Varun
Varun 2023년 3월 24일
Hello!
You can use the “subs” function in MATLAB to substitute each of the variables by a vector. For example, for a simple matrix product equation, we have
syms X Y [2 2] matrix
sM = X*Y
sM = 
S = subs(sM,{X,Y},{[0 sqrt(sym(2)); sqrt(sym(2)) 0], [1 -1; -2 1]})
S = 
Ssym = symmatrix2sym(S)
Ssym = 
You may refer to this documentation for more information:
  댓글 수: 2
RODRIGO CRESPO MIGUEL
RODRIGO CRESPO MIGUEL 2023년 4월 3일
The problem is that I want to substitute entire time dependant vectors in each element of the matrix.
For example, let A be a 2x2 matrix. I want each of those four elements substituted by a different (let's say 1:100) vector. Can I do that with subs?
Dyuman Joshi
Dyuman Joshi 2023년 4월 3일
You can do that, but note that you won't obtain every unique combination in output, just one-to-one combination.
syms x y z q
A = [sin(x) cos(y); exp(z) q]
A = 
subs(A,{x,y,z,q},{1:10,1:10,1:10,1:10})
ans = 

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

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by