当前位置:首页 » 操作系统 » matlab网格算法

matlab网格算法

发布时间: 2022-06-26 04:32:47

‘壹’ 怎么用matlab画三维网格

绘制立方网格matlab代码如下

m=3;n=3;h=3;
%定义数据的规模
Hx=1;Hy=1;Hz=1;
H=(h-1)*m*n;
CN=m*n*h;
N=m*n;
[x,y,z]=meshgrid(0:Hx:(n-1)*Hx,0:Hy:(m-1)*Hy,0:Hz:(h-1)*Hz);
Cube=reshape(1:N*h,m,n,h);
MN=2*m*n-m-n;
X=zeros(CN,1);Y=X;Z=X;
fori=1:m
forj=1:n
fork=1:h
X(Cube(i,j,k))=x(i,j,k);
Y(Cube(i,j,k))=y(i,j,k);
Z(Cube(i,j,k))=z(i,j,k);
end
end
end
linkN=0;
Img=sqrt(-1);
AA=zeros(H+h*MN,1);
fork=1:h-1
forj=1:n
fori=1:m
linkN=linkN+1;
AA(linkN)=Cube(i,j,k)+Img*Cube(i,j,k+1);
end
end
end
fork=1:h
forj=1:n-1
fori=1:m
linkN=linkN+1;
AA(linkN)=Cube(i,j,k)+Img*Cube(i,j+1,k);
end
end
forj=1:n
fori=1:m-1
linkN=linkN+1;
AA(linkN)=Cube(i,j,k)+Img*Cube(i+1,j,k);
end
end
end
figure;
plot3(X,Y,Z,'r.')
%--plotbond-----
axisequal
P1=real(AA);P2=imag(AA);
line([X(P1)';X(P2)'],[Y(P1)';Y(P2)'],[Z(P1)';Z(P2)'],'color','b')


‘贰’ 如何用matlab画网格图

绘制网格图:mesh(X,Y,Z);

1、三维曲面或网线图的数据准备:

要绘制函数z=f(x,y)所代表的三维空间曲面,需要做以下准备:

(1) 确定自变量x,y的取值范围和间隔,x=x1:dx:x2,y=y1:dy:y2;

(2)构成xoy面上的自变量格点矩阵,[X,Y]=meshgrid(x,y);

(3)获得自变量在格点上的函数值,即Z=f(X,Y)。

2、绘制曲面或网线图的命令:

绘制曲面:surf(X,Y,Z);

绘制网线:mesh(X,Y,Z);

(2)matlab网格算法扩展阅读:

二维绘图函数plot:

1、经典调用格式:plot(x,y,'s')

说明:x,y分别为自变量和对应的因变量,以确定横坐标和纵 坐标;输入量s用来确定线性和颜色,可以组合使用。

2、plot衍生调用格式 :plot(X,Y, 's')/plot(X,Y)

说明:当X和Y均为m×n数组时,将选取X的第i列和Y的第i列 作为一对自变量和因变量,绘制出n条曲线。

参考资料:网络-MATLAB

‘叁’ 如何在matlab中进行图像的网格划分

xiegangmai(站内联系TA)用mesh命令,具体使用方法请参考MATLAB帮助whxn(站内联系TA)如果已知的数据是按一定间隔分布的,那你可以先用=meshgird(x0:dx:xx,y0:dy:),如果不是等间隔的你需要自己写上一行横坐标,一行纵坐标,来得到需要的网格点的横,纵坐标;令z = zeros(size(x))+0.2(这个随便写);然后mesh(x,y,z),再调整视角为俯视,代码如下
'LineWidth',1);>> view(2)>> axis equal
>> axis off
然后就可以了。
或者我猜测,pcolor(x,y),然后调整colorbar的取值范围为0、

‘肆’ 如何在matlab中进行图像的网格划分。

可以使用meshgrid函数

meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用,函数效果如下图所示:

函数功能:

生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时, 往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y)

例如, 要在“3<=x<=5,6<=y<=9,z不限制区间” 这个区域内绘制一个3-D图形,如果只需要整数坐标为采样点的话。可能需要下面这样一个坐标构成的矩阵:

(3,9),(4,9),(5,9);

(3,8),(4,8),(5,8);

(3,7),(4,7),(5,7);

(3,6),(4,6),(5,6);

在matlab中可以这样描述这个坐标矩阵:

把各个点的x坐标独立出来,得:

3,4,5;

3,4,5;

3,4,5;

3,4,5;

再把各个点的y坐标也独立出来:

9,9,9;

8,8,8;

7,7,7;

6,6,6;

这样对应的x、y结合,便表示了上面的坐标矩阵。meshgrid就是产生这样两个矩阵,来简化我们的操作。然后根据(x, y)计算获得z,并绘制出三维图形。

在Matlab命令窗口中键入type meshgrid可以查看该函数的源代码(由此可以理解meshgrid的算法思想), 键入doc meshgrid或者help meshgrid可以获得帮助文档。

语法

[X,Y] =meshgrid(x,y)

meshgrid返回的两个矩阵X、Y必定是行数、列数相等的,且X、Y的行数都等于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看meshgrid的源代码得到,可以通过示例程序得到验证)。

[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的

[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图

相关函数: plot3、mesh、surf、automesh、ndgrid

‘伍’ MATLAB中离散点画网格

已知离散点画三维网格,可以按下列步骤来实现:

1、建立三维坐标的分向量,即

x=[。。。];y=[。。。];z=[。。。]

2、根据模型f(x,y)=a0 + a1*x + a2*y,用拟合函数regres()拟合出其拟合系数。

a 0= 4.3884;a 1= 1.0217;a 2=-762.9873

3、将x,y平面数据网格化,[X,Y]=meshgrid(x,y),然后求出Z=f(X,Y)。最后,用mesh(X,Y,Z)绘出其网格图。

运行结果

‘陆’ 如何用matlab画网格图

加上下面的程序
[X,Y]=meshgrid(min(x):50:max(x),min(y):50:max(y));%确定网格坐标(x和y方向的步长均取0.1)
Z=griddata(x,y,z,X,Y,'cubic');%插值求Z
然后再用mesh应该就可以了!

‘柒’ matlab如何做出网格,如何将离散的点连续化

这个简单,举个例子给你:

定义11个离散点如下,

x=[1234567891011];y=[0.80.30.2-0.40.60.2-0.10.30.15-0.20.2];

xx=1:0.01:11;

yy=spline(x,y,xx);

plot(x,y,'o',xx,yy),grid

matlab仿真图就是这样的。

‘捌’ 网格中如何求任意两点间的最短路径 matlab算法

function [L,Z]=dijkstra(W,S,T)
%用 Dijkstra 算法求最短路径
% 算法
% 1. 对每个点I指定一个离点S的距离初始值L(I). 在始点S的值为零, 即L(S)=0,其它点的值为Inf.
% 2. 所有的点标记为未走访的. 置始点S为当前点C.
% 3. 对于当前点C, 考虑它的所有未走访的相邻点J, 并更新J的距离值为
% L(J)=min(L(J), L(C)+W(C,J))
% 4. 把当前点C标记为走访过的点. 走访过的点C的距离L(C)就是点S到C的最短距离, 而且以后不再检查走访过得点了.
% 5. 如果所有的点都是走访过的点, 完成. 不然, 把未走访的点中具有最小距离值的点作为下一个当前点C, 转
N=length(W(:,1));%顶点数
W(find(W==0))=inf;
L=Inf*ones(1,N);
L(S)=0;%L赋初值,在S点为0,其它点为Inf
C=S; %当前点为始点S
Q=1:N;% 未走访的顶点集
Z=S*ones(1,N);
Z(S)=0;% Z赋初值,因始点 S 无父亲点,故把 S 点的Z值改为0
for K=1:N % 更新 L 和 Z 的循环
Q=setdiff(Q,C); %Matlab自带函数,显示Q中除了C之外的点集,即当前点 C 未走访的点集
[L(Q),ind]=min([L(Q);L(C)+W(C,Q)]);%当前点C已走访了所有的相邻的未走访的点,找出与C相邻的距离最短的点,记录最短距离和结点的索引值,更新 L
%如果L(Q)
Z(Q(find(ind==2)))=C; %更新Z, 找出Q中索引值为2的结点,将其父亲结点更新为C,至此可以确定C已是走访过的点了
if T&C==T %若 C 点是终点 T, 不用再计算到其它未走访的点的最短路径.先判断C==T,再判断&
L=L(T); %最短路径长度;
road=T;%最短路径终点;
while T~=S%追溯最短路径上的点
T=Z(T); %从终点往前寻找其父亲结点
road=[road,T]; %从终点开始倒序记录最短路径上的结点
end
Z=road(length(road):-1:1); %颠倒次序;
return;
end;
[null, mC]=min(L(Q));
if null==Inf
% disp('到值是Inf的点的路不通!');
Z(find(L==Inf))=nan; %NaN或者nan都是“非数”的意思,“0/0”、“∞/∞”、“0*∞”都会产生这种结果
return;
else
C=Q(mC);% 把未走访的点集Q中与始点距离最近的点作为新的当前点C;
end
end
end

‘玖’ matlab 通过网格法计算不规则图形面积

你先把图像转化为2值的 im2bw 有坦克的地方值为0,没有的地方值为255
假设是N*N的图像,分成K格
然后看就有k*k个小矩阵,用sum来求这些小矩阵的和,可以知道多少点值为255,然后就可以看是不是有超过一半的点包含坦克

‘拾’ 怎样在matlab图形中添加网格

在matlab图形中添加网格方法

1、打开MATLAB的plot函数的一个图形。

热点内容
xp系统开机密码怎么设置 发布:2024-05-02 06:49:48 浏览:759
柱加密区公式 发布:2024-05-02 06:40:19 浏览:4
java字节转换 发布:2024-05-02 06:40:11 浏览:687
用c语言做的程序 发布:2024-05-02 06:26:10 浏览:325
解压用流量 发布:2024-05-02 06:21:46 浏览:316
云购源码系统 发布:2024-05-02 06:12:52 浏览:105
电脑如何进行安卓升级 发布:2024-05-02 06:10:08 浏览:37
元龙第5集免费看完整版缓存 发布:2024-05-02 06:03:47 浏览:668
脚本宣传片 发布:2024-05-02 05:56:26 浏览:570
有线投屏安卓手机如何设置 发布:2024-05-02 05:43:26 浏览:896