我有这个单元格数组
MatrixF =
{3x1 cell} {3x1 cell}
MatrixF{1}
ans =
'f1'
'f2 '
'f3 '
MatrixF{2}
ans =
'x1'
'x2 '
'x3 '
我想将MatrixF数组中的每个项目转换为符号变量。我认为这个循环会这样做
[a, b] = size(MatrixF);
for i=1:b;
[c,d] = size(MatrixF{i});
for j=1:c;
sym(MatrixF{i}{j});
end;
end;
但相反,我得到的唯一输出是变量ans,它是1x1数组。为什么ans被声明为sym而不是单独的变量,这些变量被调用和访问?
答案 0 :(得分:2)
ans
被声明为sym
,因为sym
function需要显式输出参数来生成符号变量。此行为与使用syms
function语义的变体存在的command form不同。
因此,您可以执行以下操作:
[a, b] = size(MatrixF);
for i=1:b
[c,d] = size(MatrixF{i});
for j=1:c
MatrixF{i}{j} = sym(MatrixF{i}{j});
end
end
虽然,我建议做得更干净(也可能更快):
>> x = sym('x',[3,1])
x =
x1
x2
x3
>> f = sym('f',[3,1])
f =
f1
f2
f3