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)