MATLAB - 无法通过数组循环创建符号变量
MATLAB - Can't create symbolic variables through array loop
我有这个元胞数组
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 被声明为符号而不是被调用和访问的各个变量本身?
ans
被声明为 sym
因为 sym
function requires an explicit output argument to generate a Symbolic Variable. This behavior is different from the syms
function that uses the semantics of 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
我有这个元胞数组
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 被声明为符号而不是被调用和访问的各个变量本身?
ans
被声明为 sym
因为 sym
function requires an explicit output argument to generate a Symbolic Variable. This behavior is different from the syms
function that uses the semantics of 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