如何使用syms来处理N个不同的变量

时间:2013-06-10 15:15:39

标签: matlab

我的方程系统需要N个变量:

X = cell(N,1)
for k=1:N
    X(k) = {sym('X(k)')};
end

创建这些变量后,我想在方程式系统中使用它们:

for i=1:N
    for j=1:N
        if i~=j
            S(i)=sum(X(j))
        end
    end
    f(i)=x(i)+2*S(i)+3
end

我收到错误Undefined function 'sum' for input arguments type 'cell'。如何在不使用'cell'的情况下定义变量X(1),...X(N)

2 个答案:

答案 0 :(得分:2)

您可以使用cell2mat功能将它们转换为矩阵。 http://www.mathworks.com/help/matlab/ref/cell2mat.html

答案 1 :(得分:2)

根据sym documentation你可以使用例如。 A = sym('A%d%d', [2 2]);创建符号矩阵。

这是你的意思吗?

N = 5;
% Initialize symbolic matrices with proper size
X = sym('x%d', [N 1]);
S = sym(zeros(N, 1));
f = sym(zeros(N, 1));

for i=1:N
    for j=1:N
        if i~=j
            S(i) = S(i) + X(j);
        end
    end
    f(i)=X(i)+2*S(i)+3;
end