我的方程系统需要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)
?
答案 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