Substitute multiple elements of multiple arrays with vectors
9 ビュー (過去 30 日間)
古いコメントを表示
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
0 件のコメント
回答 (1 件)
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
S = subs(sM,{X,Y},{[0 sqrt(sym(2)); sqrt(sym(2)) 0], [1 -1; -2 1]})
Ssym = symmatrix2sym(S)
You may refer to this documentation for more information:
2 件のコメント
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]
subs(A,{x,y,z,q},{1:10,1:10,1:10,1:10})
参考
カテゴリ
Help Center および File Exchange で Calculus についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!