# Substitute multiple elements of multiple arrays with vectors

2 ビュー (過去 30 日間)
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 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 =
##### 2 件のコメントなしを表示なしを非表示
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 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 Center および File ExchangeNumber Theory についてさらに検索

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by