Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 二维绘图(添加一些线)_Matlab_Matlab Figure - Fatal编程技术网

Matlab 二维绘图(添加一些线)

Matlab 二维绘图(添加一些线),matlab,matlab-figure,Matlab,Matlab Figure,我想在4处画一条直线作为纸,我想找到最大值大于4的a和b的值。 我的代码 objfun文件 function f = threestate2(x,a,b) c1 =cos(x(1))*(cos(x(5))*(cos(x(9))+cos(x(11)))+cos(x(7))*(cos(x(9))-cos(x(11))))+ ... cos(x(3))*(cos(x(5))*(cos(x(9))-cos(x(11)))-cos(x(7))*(cos(x(9))+cos(x(11)))); c

我想在4处画一条直线作为纸,我想找到最大值大于4的a和b的值。 我的代码 objfun文件

function f = threestate2(x,a,b)
c1 =cos(x(1))*(cos(x(5))*(cos(x(9))+cos(x(11)))+cos(x(7))*(cos(x(9))-cos(x(11))))+ ...
    cos(x(3))*(cos(x(5))*(cos(x(9))-cos(x(11)))-cos(x(7))*(cos(x(9))+cos(x(11))));

c2=sin(x(1))*(sin(x(5))*(sin(x(9))*cos(x(2)+x(6)+x(10))+sin(x(11))*cos(x(2)+x(6)+x(12))) ...
+sin(x(7))*(sin(x(9))*cos(x(2)+x(8)+x(10))-sin(x(11))*cos(x(2)+x(8)+x(12))))+ ...
sin(x(3))*(sin(x(5))*(sin(x(9))*cos(x(4)+x(6)+x(10))-sin(x(11))*cos(x(4)+x(6)+x(12))) ...
-sin(x(7))*(sin(x(9))*cos(x(4)+x(8)+x(10))+sin(x(11))*cos(x(4)+x(8)+x(12))));


A1=a^2-b^2;
A2=2*a*b;
f1=A1*c1 +A2*c2;

f=-(f1^2);
我的主文件

clear 
close 
clc
%x=[x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12)]; % angles;

lb=[0,0,0,0,0,0,0,0,0,0,0,0];
ub=[pi,2*pi,pi,2*pi,pi,2*pi,pi,2*pi,pi,2*pi,pi,2*pi];
options = optimoptions(@fmincon,'TolX',10^-12,'MaxIter',1500,'MaxFunEvals',10^8,'Algorithm','sqp','TolFun',10^-8);
a=0:0.01:1;
w=NaN(size(a));
ww=NaN(size(a));

for k=1:30
    x0=rand([1,12]).*ub*.9986;%7976

for i=1:length(a)
bhelp=1-a(i)^2;
if (bhelp>0 || bhelp==0)
    b=sqrt(bhelp);
       [~,fval]=fmincon(@(x)threestate2(x,a(i),b),x0,[],[],[],[],lb,ub,[],options);
w(i)=sqrt(-fval);
else 
    w(i)=nan;
end 
ww=max(w,ww);
end
x=a.^2;
end
plot(x,ww)
grid on
ylabel('\fontname{Times New Roman} S_{max}(\Psi_{gs})')
xlabel('\fontname{Times New Roman}\alpha^2')
我得到的阴谋是


所以我希望它像这张图一样

在Matlab中是一条直线,你只需沿着这条直线做一些事情:
plot(x,value*ones(size(x))
。并在集合中查找小于任何值的值:
y(yTry
xlm=xlim;保持;绘图(xlm,[4,4],'k--'));
我的意思是,我想在4处画一条直线,这意味着找到最大值为4的a和b的值,作为我手工绘制的上传图,我想找到最大值大于4的a和b的值,那么如何在我的代码“plot(x,ww)”中放在这里呢