matlab surf函数的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab surf函数的使用相关的知识,希望对你有一定的参考价值。
x=1:1:15;
y=1:1:5;
z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
surf(X,Y,Z)
Error using surf (line 75)
Data dimensions must agree.
请问我这个surf函数如何修改,我想绘制一个曲面图
>> [x,y]=meshgrid(1:1:12,1:1:5)
x =
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
y =
1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5
>> z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
>> surf(x,y,z)
注意,x,y,z的数据的个数要一样。
clear all
[x,y]=meshgrid(linspace(-15,15));%设定xy范围
z=sin((x.^2+y.^2).^0.5)./((x.^2+y.^2).^0.5);
figure(1)
surf(x,y,z)
xlabel('X'),ylabel('Y'),zlabel('Z');
figure(2)
surf(x,y,z,'LineStyle','none')
alpha(0.7)%设定透明度
xlabel('X'),ylabel('Y'),zlabel('Z');
y=1:1:5;
z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
surf(x,y,z)本回答被提问者和网友采纳
SURF特征描述与检测的Matlab实现
SIFT特征描述算子在生成特征矢量时使用的是高斯图像,而SURF特征描述算子在生成特征矢量时用到的则是积分图。这样做的目的是为了充分利用特征点检测时形成的中间结果,也就是积分图,从而避免在特征矢量生成时对图像进行重复计算。本文将通过MATLAB代码来演示SURF特征描述算法的原理。如果需要了解该算法的更多细节,推荐参考《数字图像处理原理与实践(MATLAB版)》一书。
首先给出一个测试用的主程序,它调用了SURF的相关实现函数,然后在两幅图像中搜索特征点并进行匹配。
I1=imread(\'box.png\');
I2=imread(\'box_in_scene.png\');
Options.upright=true;
Options.tresh=0.0001;
Ipts1=OpenSurf(I1,Options);
Ipts2=OpenSurf(I2,Options);
D1 = reshape([Ipts1.descriptor],64,[]);
D2 = reshape([Ipts2.descriptor],64,[]);
err=zeros(1,length(Ipts1));
cor1=1:length(Ipts1);
cor2=zeros(1,length(Ipts1));
for i=1:length(Ipts1)
distance=sum((D2-repmat(D1(:,i),[1 length(Ipts2)])).^2,1);
[err(i),cor2(i)]=min(distance);
end
[err, ind]=sort(err);
cor1=cor1(ind);
cor2=cor2(ind);
I = zeros([max(size(I1,1),size(I2,1)),size(I1,2)+size(I1,2)]);
I(1:size(I1,1),1:siz
以上是关于matlab surf函数的使用的主要内容,如果未能解决你的问题,请参考以下文章