这个函数里inpoly这个函数 matlab里面没有(用的2014a),是不是自己编的
function [R cx cy]=max_inscribed_circle(ContourImage, display)
% get the contour
sz=size(ContourImage);
[Y,X]=find(ContourImage==255,1, 'first');%找到第一个非零点
contour = bwtraceboundary(ContourImage, [Y(1), X(1)], 'W', 8);%调用函数进行边缘跟踪。
X=contour(:,2);%边缘x轴坐标
Y=contour(:,1);%边缘y轴坐标
% find the maximum inscribed circle:
% The point that has the maximum distance inside the given contour is the
% center The distance of to the closest edge (tangent edge) is the radius
tic();
BW=bwdist(logical(ContourImage));%进行距离边缘,用的是欧式距离。BW中每一点的值是
%ContourImage中每一点到距离它最近的非零值的距离(欧式距离)
[Mx, My]=meshgrid(1:sz(2), 1:sz(1));
[Vin Von]=inpoly([Mx(:),My(:)],[X,Y]);%这个函数的作用
%我估计是判断Mx,My中哪些点实在上文检测出的轮廓中,并把它们的线性索引值保存在Vin与 %Von中
ind=sub2ind(sz, My(Vin),Mx(Vin));%变换为线性索引
[R RInd]=max(BW(ind));%求取距离值最大的点的线性索引,R为最大距离,Rind为线性索引
R=R(1); RInd=RInd(1); % handle multiple solutions: Just take first
[cy cx]=ind2sub(sz, ind(RInd));%将线性索引转化为x,y坐标
toc();
模糊控制是非线性PD控制,由于没有积分作用,是存在稳态误差的。模糊控制主要是鲁棒性好。可以用改进的模糊控制,如模糊控制加精确积分,即可实现稳态无误差,且鲁棒性好。我刚做模糊控制的仿真作业,可以交流
MIMO连续系统ILO未知输入观测器\V10连续系统ILO未知输入观测器\350yk_ydjpg
\\ekjpg
\\fig25fig
\\inputasv
\\inputm
\\main0asv
\\main0m
\\main00mdlr14
\\main000mdl
\\main0000mdl
\\slprj\grt\main00\tmwinternal\minfomat
\\\sl_projtmw
\\x1jpg
\\x1跟踪fig
\\x1跟踪jpg
\\x1跟踪误差fig
\\x1跟踪误差jpg
\\x2jpg
\\x2跟踪fig
\\x2跟踪jpg
\\x2跟踪误差fig
\\x2跟踪误差jpg
\\yitajpg
\\位置输入跟踪fig
\\位置输入跟踪jpg
\\复件 350yk_ydjpg
\\复件 ekjpg
\\复件 fig25fig
\\复件 x1jpg
\\复件 x1跟踪fig
\\复件 x1跟踪jpg
\\复件 x1跟踪误差fig
\\复件 x1跟踪误差jpg
\\复件 x2jpg
\\复件 x2跟踪fig
\\复件 x2跟踪jpg
\\复件 x2跟踪误差fig
\\复件 x2跟踪误差jpg
\\复件 yitajpg
\\复件 位置输入跟踪fig
\\复件 未知输入误差fig
\\复件 标准差fig
\\复件 标准差jpg
\\复件 输出跟踪fig
\\复件 输出跟踪jpg
\\复件 输出跟踪组差_大fig
\\复件 输出跟踪组差_大jpg
\\复件 输出跟踪组差_细fig
\\复件 输出跟踪组差_细jpg
\\未知输入误差fig
\\标准差fig
\\标准差jpg
\\输出跟踪fig
\\输出跟踪jpg
\\输出跟踪组差_大fig
\\输出跟踪组差_大jpg
\\输出跟踪组差_细fig
\\输出跟踪组差_细jpg
\\slprj\grt\main00\tmwinternal
\\\\main00
\\\grt
\\slprj
\V10连续系统ILO未知输入观测器
MIMO连续系统ILO未知输入观测器
在你的程序里a 是一个矩阵,不像传统的循环程序是一个 1:N 这样一个向量了,但是运算规则就是将单个元素的累加,扩展到了向量的累加
a =
12 13 14
15 16 17
18 19 20
21 22 23
一步一步地跟踪循环
第一次
k=a(:,1)=[12 15 18 21]'
s=s+k,则s=0+[12 15 18 21]'=[12 15 18 21]'
第二次
k=a(:,2)=[13 16 19 22]'
s=s+k=[13 16 19 22]'+[12 15 18 21]'
……
所以
s=[12 15 18 21]'+[13 16 19 22]'+[14 17 20 23]'=[39 48 57 66]'
以上就是关于麻烦Matlab大神帮我解答一下下面代码全部的内容,包括:麻烦Matlab大神帮我解答一下下面代码、Matlab模糊控制不能跟踪到设定值、matlab在未知输入观测器上的应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)