在matlab中创建具有输入(x,y)条件的用户定义函数

时间:2014-04-15 11:53:46

标签: matlab

我正在尝试创建一个输入(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));

错误是:     操作数到||和&&运算符必须可转换为逻辑标量值。

如何创建这样的功能?

3 个答案:

答案 0 :(得分:3)

您应该使用&|代替&&||。如果xy是单个标量值,则将使用双精度运算符。当关系的任何一边是向量时,必须使用单个运算符,如您的情况。

答案 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);