数组具有与此操作不兼容的大小
Arrays have incompatible sizes for this operation
function r = fun(x, params, type)
h = @(x) x(1)-x(8);
x= sym('x',[1,8]);
gamma = 16;
if type == 'linear'
r = gamma*h(x);
elseif type == 'sin'
r = gamma*sin(h(x));
end
end
当我 运行 这个函数用于类型 'sin' 时,我总是得到这个错误
Arrays have incompatible sizes for this operation.
Error in fun (line 7)
if type == 'linear'
如何解决这个问题?
我只是一个传递类型并根据它创建我的输出,我虽然字符串可能没问题,但它不起作用。
我想在线性情况下将我的函数句柄与 gamma 相乘,在正弦情况下乘以 sin。
你的意思可能是
if strcmp(type,'linear')
type
是一个char数组,matlab不支持那种直接数组到数组比较的文本。它尝试将每个字母相互比较,但如果 length(type)
与 length('linear')
不同,则会出错。
function r = fun(x, params, type)
h = @(x) x(1)-x(8);
x= sym('x',[1,8]);
gamma = 16;
if type == 'linear'
r = gamma*h(x);
elseif type == 'sin'
r = gamma*sin(h(x));
end
end
当我 运行 这个函数用于类型 'sin' 时,我总是得到这个错误
Arrays have incompatible sizes for this operation.
Error in fun (line 7)
if type == 'linear'
如何解决这个问题?
我只是一个传递类型并根据它创建我的输出,我虽然字符串可能没问题,但它不起作用。
我想在线性情况下将我的函数句柄与 gamma 相乘,在正弦情况下乘以 sin。
你的意思可能是
if strcmp(type,'linear')
type
是一个char数组,matlab不支持那种直接数组到数组比较的文本。它尝试将每个字母相互比较,但如果 length(type)
与 length('linear')
不同,则会出错。