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的数据的个数要一样。

参考技术A

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');

参考技术B x=1:1:12;
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函数的使用的主要内容,如果未能解决你的问题,请参考以下文章

matlab surf函数的使用

matlab中surf啥意思

matlab踩坑 自带surf 函数找不了 surf 作为函数执行

Surf的MATLAB函数名

如何用matlab中的mesh和surf函数画圆

MATLAB画图surf函数颜色控制参数c用法