matlab 一维矩阵 绘制 二维平面图
有两个一维矩阵,如x=linspace(0,4*pi,100),y=sin(x);可以以x为横坐标,y为纵坐标画一维曲线,怎样根据这两个一维矩阵画二维彩色平面图,以x为坐...
有两个一维矩阵,如x=linspace(0,4*pi,100), y=sin(x); 可以以x为横坐标,y为纵坐标画一维曲线,怎样根据这两个一维矩阵画二维彩色平面图,以x为坐标,y为函数值,如下图所示
展开
展开全部
追问
非常感谢,但能否在每行加上注释,不太明白为何要这么做n=floor(length(x).*sqrt(2)/2);% 为何乘以sqrt(2)/2
v=linspace(-1,1,2*n-1)*x(n);% 完全看不懂
追答
因为画成方形的图片的时候,离中间最远的就是4个角
根据原来的x,y数据,全部都用上了,最多画到角点
那么方形的边框位置最多是原来最大范围的sqrt(2)/2
算法本身是通过插值计算图像每点的值,所以分辨率是可以随意设置的
也就是最后图像的采样疏密是可以随意控制的
但就你原来已经有的x,最好还是保持和原来x一致的采样间隔
所以用length(x)求得原来图像x的点数
然后乘以sqrt(2)/2再取整,就的到最后图像边缘到中心的采样点数n
原来x是从0开始,x(1)=0,而x(2),x(3),...依次递增,到x(100)等于4*pi
那么图像边缘x对应的值就是x(n)
现在整个图像从左到右,从上到下的范围都是 -x(n) ~ x(n)
而算上中间0点,这期间应该有2n-1个点
所以v=linspace(-1,1,2*n-1)*x(n);得到了就是
图像从左到右,从下到上的横坐标和纵坐标范围
用meshgrid将这个范围扩成二维矩阵xx,yy
然后利用sqrt(xx(:).^2+yy(:).^2)计算出二维网格中每点到中心的距离
利用原来x,y数据,和这个距离插值计算出网格每点的值
最后用imagsc将网格画成图像
展开全部
本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二维彩色平面图? 曲线y=sinx就是二维的
x=linspace(0,4*pi,100), y=sin(x); plot(x,y)
x=linspace(0,4*pi,100), y=sin(x); plot(x,y)
追问
大哥,这还是一维曲线图,不是平面图。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |