Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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_Plot - Fatal编程技术网

MATLAB绘制不等式和零除

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

在绘制不等式时,我对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 && 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(包括
else
)。颜色不是点的值吗?至少默认情况下,
scatter
就是这样做的。@Adrian但我希望它们是黄点(0值)。。不是蓝色的。这些
X,Y
位置的值是多少?另外:您不需要
else
语句,因为您最初将值设置为零,并在
if
语句中覆盖它。另外,它可能与绘制
double
而不是
uint8
(或其他一些整数类型)有关,除非您的
double
范围在
0
1
之间,您也不需要
j=j+1
i=i+1,它们无论如何都会增加,并且不受循环中此赋值的影响
在第一个循环之前预先分配内存,并删除所有
ineq(i,j)=0(包括
else
)。