我们可以在一个输出中组合所有迭代,在MATLAB中使用LOOP吗?

时间:2017-10-07 03:41:25

标签: matlab symbolic-math

我有一个符号矩阵,我想逐行替换不同的值。我使用了for循环,它在每次迭代中逐行替换值。但是,如何组合这些迭代来获得矩阵?

e.g。 A=[x x^2;x^3 x^4]是两行的符号矩阵,我想使用for循环在第一行中提交1,在第二行中提交2,我想要一个带有替换的两行矩阵。没有for循环它非常简单但是在更高维矩阵的情况下for循环是有用的。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您需要在符号矩阵中对行特定替换进行迭代求解,并将所有结果收集在数值矩阵中。这可以这样实现:

% Define symbolic variables
syms x
A = [x x^2; x^3 x^4];

% substitution values of x for each row
xvals = [1 2];

% iterative substitution in symbolic expression
[Ar,Ac,Ad] = size(A);   % Use Ac, Ad for higher dim. matrices if needed
res = zeros(size(A));   % Collect results

for i=1:Ar
    x = xvals(i);
    res(i,:) = subs(A(i,:));
end

根据您的要求,您可以定义更高的暗淡。符号矩阵和数值矩阵,并在循环中使用res(i,:,k) = subs(A(i,:,k)) where k=1:Ad进行替换。