我正在尝试创建一个输入(x,y)的函数。该函数用于方形x = 0,x = 1和y = 0,y = 1的四边 函数值三面为零,第四面为= k。我为函数创建了这段代码:
function f = func_bc(x,y)
if x==0 && y>=0
f = 0;
elseif y==0 && x>=0
f = 0;
elseif y==1 && x>=0
f = 0;
elseif x==1 && y>0
f = k;
end
end
但是,当我使用feval将矢量作为输入时,这不起作用: x = meshgrid(0:0.01:1); y = meshgrid(0:0.01:1); a = feval(func_bc,x(2:101,1),y(2:101,1));
错误是: 操作数到||和&&运算符必须可转换为逻辑标量值。
如何创建这样的功能?
答案 0 :(得分:3)
您应该使用&
和|
代替&&
和||
。如果x
和y
是单个标量值,则将使用双精度运算符。当关系的任何一边是向量时,必须使用单个运算符,如您的情况。
答案 1 :(得分:1)
替换&&与&。
答案 2 :(得分:0)
这可以满足您的需求吗?
function z = mysquare(x,y)
k = 10;
z = zeros(size(x));
z(x==1 & y>0) = k;
>> [X,Y] = meshgrid(0:0.1:1, 0:0.1:1);
>> Z = mysquare(X,Y);