Matlab 如何将逻辑条件转换为函数的变量

Matlab 如何将逻辑条件转换为函数的变量,matlab,vectorization,Matlab,Vectorization,我希望在以下方面实现上述目标: Rn = 0.009; % Resolution of simulation (in m^3) Xs = -1 : Rn : 1; Ys = -1 : Rn : 1; Zs = 0 : Rn : 1; [X Y Z] = meshgrid(Xs, Ys, Zs); alpha = atan2(Z,X); ze = x.^2 + y.^2; % define some condition m = 0.59; % manual inp

我希望在以下方面实现上述目标:

Rn = 0.009; % Resolution of simulation (in m^3)
Xs = -1 : Rn : 1;
Ys = -1 : Rn : 1;
Zs =  0 : Rn : 1; 

[X Y Z] = meshgrid(Xs, Ys, Zs); 
alpha   = atan2(Z,X);
ze      = x.^2 + y.^2; % define some condition
m       = 0.59; % manual input
cond    = (pi/3 <= alpha)     & ...
          (alpha <= (2*pi/3)) & ...
          (m <= Z)            & ...
          (Z <= ze); % more conditions 

xl = nnz(cond);        % the number of non-zero elements   
f  = abs(xl*1000 - 90) % guessing m to get f as low as possible
Rn=0.009;%模拟分辨率(单位:m^3)
Xs=-1:Rn:1;
Ys=-1:Rn:1;
Zs=0:Rn:1;
[X Y Z]=meshgrid(Xs,Ys,Zs);
α=atan2(Z,X);
ze=x.^2+y.^2;%定义一些条件
m=0.59;%人工输入

cond=(pi/3为了使用
m
作为变量,您需要定义一个函数句柄。因此您需要编写:

 cond = @(m) ((pi/3) <= alpha) & (alpha <= (2*pi/3)) & (m <= Z) & (Z <= ze);
cond=@(m)((pi/3)