matlab 自定义函数用数组作参数时报错如果我自己定义了一个函数:function a=linff(z)if z>=0 && z=10a=-2*z+100;elseend然后我在base空间中调用如下:x=linspace(0,40,1000);y=linff(x);这时就会报错:Operands to the
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 01:20:41
matlab 自定义函数用数组作参数时报错如果我自己定义了一个函数:function a=linff(z)if z>=0 && z=10a=-2*z+100;elseend然后我在base空间中调用如下:x=linspace(0,40,1000);y=linff(x);这时就会报错:Operands to the
matlab 自定义函数用数组作参数时报错
如果我自己定义了一个函数:
function a=linff(z)
if z>=0 && z=10
a=-2*z+100;
else
end
然后我在base空间中调用如下:
x=linspace(0,40,1000);
y=linff(x);
这时就会报错:
Operands to the || and && operators must be
convertible to logical scalar values.
Error in linff (line 2)
if z>=0 && z
matlab 自定义函数用数组作参数时报错如果我自己定义了一个函数:function a=linff(z)if z>=0 && z=10a=-2*z+100;elseend然后我在base空间中调用如下:x=linspace(0,40,1000);y=linff(x);这时就会报错:Operands to the
报错里不是说的很明白么:||和&&的操作数必须是或者可以转化成标量的逻辑值.z > 10,如果z是向量的话,结果也是相同size的向量.你的问题可以这样解决:
1 可以在linff函数内部对输入的数组参数z的元素循环,z的长度用length函数获得.从而消除了外部的循环,但是linff函数内部有循环.
2 如果非要消除所有的循环,可以这样写:
function a = linff(z)zb1 = z > 0;
zb2 = z < 10;
zb3 = z >= 10;
a = zb1.*zb2 .* z.^2 + zb3 .* (-2*z+100);
不知道这个你能不能看懂.