gpt4 book ai didi

matlab - 在Matlab中,sym ('x'和sym ('1-x'之间的类有什么区别?

转载 作者:行者123 更新时间:2023-12-02 11:01:35 25 4
gpt4 key购买 nike

我定义了以下功能:

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

关于matlab - 在Matlab中,sym ('x'和sym ('1-x'之间的类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37139400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com