MATLAB绘制不等式和零除
在绘制不等式时,我对MATLAB有一个问题。 这些是ineq。包括符号替换。然而,当X或Y为零时,有一个除以零的除法,所以我需要避免计算这些点MATLAB绘制不等式和零除,matlab,plot,Matlab,Plot,在绘制不等式时,我对MATLAB有一个问题。 这些是ineq。包括符号替换。然而,当X或Y为零时,有一个除以零的除法,所以我需要避免计算这些点 tr=trace(A); de=det(A); [X,Y]=meshgrid(-1:0.1:1,-1:0.1:1); % Make a grid of points between 0 and 1 for i=1:length(X) for j=1:length(X) ineq(i,j)=0; if X(i,j) ~= 0 &am
tr=trace(A);
de=det(A);
[X,Y]=meshgrid(-1:0.1:1,-1:0.1:1); % Make a grid of points between 0 and 1
for i=1:length(X)
for j=1:length(X)
ineq(i,j)=0;
if X(i,j) ~= 0 && Y(i,j)~= 0
ineq(i,j)=double(subs(tr, {a, b},{[X(i,j)], [Y(i,j)]}))<0 & double(subs(de, {a, b},{[X(i,j)], [Y(i,j)]}))>0;
else
ineq(i,j)=0;
end
j=j+1;
end
i=i+1;
end
scatter(X(:),Y(:),3,ineq(:),'filled')
tr=trace(A);
de=det(A);
[X,Y]=网格(-1:0.1:1,-1:0.1:1);%在0和1之间创建点栅格
对于i=1:长度(X)
对于j=1:长度(X)
ineq(i,j)=0;
如果X(i,j)~=0&&Y(i,j)~=0
ineq(i,j)=双(subs(tr,{a,b},{[X(i,j)],[Y(i,j)])0;
其他的
ineq(i,j)=0;
结束
j=j+1;
结束
i=i+1;
结束
散布(X(:)、Y(:)、3、ineq(:)、‘填充’)
问题是,在绘图中,我可以看到X轴和Y轴上的蓝色圆点。为什么呢?我认为我强制他们为0值。。发生了什么?
颜色不是圆点的值吗?至少默认情况下,
scatter
就是这样做的。@Adrian但我希望它们是黄点(0值)。。不是蓝色的。这些X,Y
位置的值是多少?另外:您不需要else
语句,因为您最初将值设置为零,并在if
语句中覆盖它。另外,它可能与绘制double
而不是uint8
(或其他一些整数类型)有关,除非您的double
范围在0
和1
之间,您也不需要j=j+1代码>和i=i+1代码>,它们无论如何都会增加,并且不受循环中此赋值的影响
在第一个循环之前预先分配内存,并删除所有ineq(i,j)=0循环内的code>(包括else
)。颜色不是点的值吗?至少默认情况下,scatter
就是这样做的。@Adrian但我希望它们是黄点(0值)。。不是蓝色的。这些X,Y
位置的值是多少?另外:您不需要else
语句,因为您最初将值设置为零,并在if
语句中覆盖它。另外,它可能与绘制double
而不是uint8
(或其他一些整数类型)有关,除非您的double
范围在0
和1
之间,您也不需要j=j+1代码>和i=i+1代码>,它们无论如何都会增加,并且不受循环中此赋值的影响
在第一个循环之前预先分配内存,并删除所有ineq(i,j)=0循环内的代码>(包括else
)。