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/07/02 21:08:05
![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](/uploads/image/z/4518178-34-8.jpg?t=matlab+%E8%87%AA%E5%AE%9A%E4%B9%89%E5%87%BD%E6%95%B0%E7%94%A8%E6%95%B0%E7%BB%84%E4%BD%9C%E5%8F%82%E6%95%B0%E6%97%B6%E6%8A%A5%E9%94%99%E5%A6%82%E6%9E%9C%E6%88%91%E8%87%AA%E5%B7%B1%E5%AE%9A%E4%B9%89%E4%BA%86%E4%B8%80%E4%B8%AA%E5%87%BD%E6%95%B0%EF%BC%9Afunction+a%3Dlinff%28z%29if+z%3E%3D0+%26%26+z%3D10a%3D-2%2Az%2B100%3Belseend%E7%84%B6%E5%90%8E%E6%88%91%E5%9C%A8base%E7%A9%BA%E9%97%B4%E4%B8%AD%E8%B0%83%E7%94%A8%E5%A6%82%E4%B8%8B%EF%BC%9Ax%3Dlinspace%280%2C40%2C1000%29%3By%3Dlinff%28x%29%3B%E8%BF%99%E6%97%B6%E5%B0%B1%E4%BC%9A%E6%8A%A5%E9%94%99%EF%BC%9AOperands+to+the)
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);
不知道这个你能不能看懂.