在Matlab中,sym('x')和sym('1-x')之间的class有什么区别?
In Matlab, what is the difference in class between sym('x') and sym('1-x')?
我定义了以下函数:
function y = pos(c)
% function outputs the maximum of c and 0
%ie. pos(c)=0 if c is negative, and pos(c)=c if c is positive
if isa(c,'sym')
y=sym(strcat('pos(',c,')'));
elseif isa(c,'double')
y=max(c,0);
else
y='not defined';
end
如果我输入 sym('x'):
形式的符号,它工作正常
>> pos(sym('x'))
ans =
pos(x)
但是,如果我将它应用于 sym('1-x') 形式的符号,我会收到错误消息:
>> pos(sym('1-x'))
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in strcat (line 94)
s(pos:pos+len-1) = str;
Error in pos (line 6)
y=sym(strcat('pos(',c,')'));
这是为什么?我假设 sym('x') 和 sym('1-x')?
的性质有所不同
使用字符串操作代替变量不是一个好主意。
相关部分的备选方案:
if isa(c,'sym')
%create a symbolic function pos
f=symfun(sym('pos(h)'),sym('h'))
%substitute the parameters
y=f(c)
elseif
我定义了以下函数:
function y = pos(c)
% function outputs the maximum of c and 0
%ie. pos(c)=0 if c is negative, and pos(c)=c if c is positive
if isa(c,'sym')
y=sym(strcat('pos(',c,')'));
elseif isa(c,'double')
y=max(c,0);
else
y='not defined';
end
如果我输入 sym('x'):
形式的符号,它工作正常>> pos(sym('x'))
ans =
pos(x)
但是,如果我将它应用于 sym('1-x') 形式的符号,我会收到错误消息:
>> pos(sym('1-x'))
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in strcat (line 94)
s(pos:pos+len-1) = str;
Error in pos (line 6)
y=sym(strcat('pos(',c,')'));
这是为什么?我假设 sym('x') 和 sym('1-x')?
的性质有所不同使用字符串操作代替变量不是一个好主意。
相关部分的备选方案:
if isa(c,'sym')
%create a symbolic function pos
f=symfun(sym('pos(h)'),sym('h'))
%substitute the parameters
y=f(c)
elseif