matlab中矩阵相除是怎么除的

matlab中矩阵相除是怎么除的,第1张

假设你的矩阵为A,B,算法如下:
c=A~=0;
d=B~=0;
e=c+d;
f=e==2;
这个f矩阵值为1的元素就是矩阵A,B中都不为零的数。
g(f)=A(f)/B(f)就可以了,其中g的维数与A,B相同

x=0:001:pi;
y=sin(x);
plot(x,y)
set(gca,'xtick',[],'xticklabel',[])
set(gca,'ytick',[],'yticklabel',[])

Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\B是A的逆矩阵乘B,即inv(A)B;而B/A是B乘A的逆矩阵,即Binv(A).具体计算时可不用逆矩阵而直接计算.
通常:
x=A\B就是Ax=B的解;
x=B/A就是xA=B的解
当B与A矩阵行数相等可进行左除.如果A是方阵,用高斯消元法分解因数.解方程:Ax(:,
j)=B(:,
j),式中的(:,
j)表示B矩阵的第j列,返回的结果x具有与B矩阵相同的阶数,如果A是奇异矩阵将给出警告信息.
如果A矩阵不是方阵,可由以列为基准的Householder正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m×n的x矩阵.m是A矩阵的列数,n是B矩阵的列数.每个矩阵的列向量最多有k个非零元素,k
是A的有效秩.

这个非常简单(注意除法要用点除):

x=0:01:377;
y=1703663/(1885-x);
plot(x,y)

或者,更简单的方法是用ezplot:

ezplot('1703663/(1885-x)',[0 377])

用距离判断剔除外面的散点
如果是圆形区域,判断所有散点与圆心之间的距离,剔除大于半径的散点
如果是矩形区域,判断所有散点的x和y坐标是否都在矩形的区域内,否则都剔除
如果是不规则区域,也有通用的方法,前提是区域边界所有节点能表示成多段线的格式,可以用matlab自带函数inpolygon函数
-------------------------------
inpolygon - 位于多边形区域边缘内部或边缘上的点
此 MATLAB 函数 返回 in,以指明 xq 和 yq 所指定的查询点是在 xv 和 yv 定义的多边形区域的边缘内部还是在边缘上。
in = inpolygon(xq,yq,xv,yv)
[in,on] = inpolygon(xq,yq,xv,yv)
-------------------------------


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13041630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存