我想在MATLAB中从函数tan(n * theta1)+ tan(n * theta2)+ tan(n * thetas)= 0绘制n vs theta1;其中n,theta1和theta2是变量,并给出了t。任何人都可以指点如何做到这一点吗?
我尝试过使用ezplot。它不起作用。
接下来,我使用了这段代码,
c = 1;
thetas = pi/4;
for n = 1.01:0.01:3.50
for theta1 = pi/2 : 0.01 : 5*pi/6
for theta2 = 0: 0.01: pi/2
if(tan(n*theta1) + tan(n*theta2) + tan(n*thetas) >= -0.0001 && tan(n*theta1) + tan(n*theta2) + tan(n*thetas) <= 0.0001 && (n*theta1) ~= pi/2 ...
&& (n*theta2) ~= pi/2 && (n*thetas) ~= pi/2)
ns(c) = n;
theta1s(c) = theta1;
theta2s(c) = theta2;
c = c + 1;
end
end
end
end
我尝试使用plot命令绘制结果。也没有成功。对于每个给定的θ值,大多数情节应该是三条不同的曲线。
有人可以帮忙吗?
答案 0 :(得分:1)
这样的事可能有用吗? -
%%// Data (Random numbers)
thetas_array = [2 4 6]; %// Put different thetas here
theta2 = 2:2:20;
n = 1:10;
figure,
for k = 1:numel(thetas_array)
thetas = thetas_array(k);
%%// Since tan(n*theta1) + tan(n*theta2) + tan(n*thetas)= 0;
theta1 = (1./n).*atan(- tan(n.*theta2) - tan(n.*thetas));
subplot(3,1,k), plot(n,theta1), xlabel('n'), ylabel(strcat('theta1 [thetas = ',num2str(thetas),']'));
end
<强>输出强>