matlab中画三维图形
这里主要讲述两个方法用matlab画三维图形:
1.mesh函数
先看一个简单的例子:
x = ::;
y = ::;
[X, Y] = meshgrid(x, y);
Z = zeros(,);
Z = [ ;
;
;
]
mesh(X, Y, Z);
这是个简单的用mesh函数画的三维图,结果是:
这里需要注意一点:
矩阵Z的行列,Z的行是Y坐标系的值(meshgrid的右边位置的数y),Z的列是X坐标系的值(meshgrid的左边位置的数x)。
那下面讲下我怎么将自己的数据导入到Z矩阵中:
1.简单的方法是直接将数据输入到矩阵Z中,注意行列:
x = ::;
y = ::;
[X,Y] = meshgrid(x,y);
Z = zeros(,);
Z = [
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
];
mesh(X, Y, Z);
xlabel('cluster');
ylabel('mrf node');
zlabel('max label num');
结果是:
方法2用plot3画:
首先用c++写段代码,注意数据存储的方式:
fp = fopen("D://cluster_num_max.text", "w");
if(fp)
{
for (GLong v = ; v < mrf.size(); v++)
{
for (GLong k = ; k < canopy; k++)
{
fprintf(fp, "%ld ", v + );
}
}
fprintf(fp, "\n");
for (GLong v = ; v < mrf.size(); v++)
{
for (GLong k = ; k < canopy; k++)
{
fprintf(fp, "%ld ", k + );
}
}
fprintf(fp, "\n");
for (GLong v = ; v < mrf.size(); v++)
{
for (GLong k = ; k < canopy; k++)
{
GLong lCanopyTemp = mrf[v].stClusterNum_min_max[k].lLabel_pruning_cluster_num_max;
fprintf(fp, "%ld ", lCanopyTemp );
}
//fprintf(fp, ";\n");
}
}
//fprintf(fp, "\n");
fclose(fp);
fp = NULL;
得到cluster_num_max.text后,matlab就可以导入数据了。
load('D:\\cluster_num_max.text');
y = cluster_num_max(,:);
x = cluster_num_max(,:);
z = cluster_num_max(,:);
plot3(x,y,z);
xlabel('cluster');
ylabel('mrf node');
zlabel('max label num')
结果是:
补充mesh函数:
[x,y]=meshgrid(-:0.5:);
z=sin(sqrt(x.^+y.^))./sqrt(x.^+y.^+eps);
subplot(,,);
mesh(x,y,z);
title('mesh(x,y,z)')
subplot(,,);
meshc(x,y,z);
title('meshc(x,y,z)')
subplot(,,);
meshz(x,y,z)
title('meshz(x,y,z)')
subplot(,,);
surf(x,y,z);
title('surf(x,y,z)')
最后说一下plot3和mesh的图怎么不一样
左图是plot3,右图是mesh。可以看到当(1,4,1)数据紧接着是(2,1,1),它们相连了。
matlab中画三维图形的更多相关文章
- matlab中的三维坐标系与旋转
1. matlab中的三维坐标系 matlab中的三维坐标系是使用的右手坐标系: 输入以下代码: >> plot3(0,0,0) >> xlabel('axis X') > ...
- Matlab随笔之三维图形绘制
1.三维曲线 用到了plot3函数.plot3(x,y,z)用来绘制3维曲线图,而不能绘制曲面图!就是把所有的(x,y,z)点连接在一起. t=linspace(,*pi,); x=sin(t); y ...
- matlab中set设置图形属性
来源:https://ww2.mathworks.cn/help/matlab/ref/set.html?searchHighlight=set&s_tid=doc_srchtitle set ...
- matlab中画系统零极点的方法
写论文的时候由于需要画出系统的零极点图.但是之前不知道怎么用matlab画,今天研究了一下,拿出来和大家共享.所用到的matlab函数为zplane,matlab给出的解释如下: ZPLANE Z-p ...
- matlab中get查询图形对象属性
来源:https://ww2.mathworks.cn/help/matlab/ref/get.html?searchHighlight=get&s_tid=doc_srchtitle get ...
- matlab中画一条折线时怎样显示出每个点折点的数值
举个例子: num=[5,44,62,154,264,365,398,480,619,705,762,728,669,726,890,731,707,696,558,509,444];date=[1. ...
- matlab绘制三维图形
原文地址:种三维曲面图. 程序如下: [x,y]=meshgrid(-8:0.5:8); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2, ...
- Matlab绘图基础——colormap在数字图像处理及三维图形展示上的应用(分层设色)
色图(color map)是MATLAB系统引入的概念.在MATLAB中,每个图形窗口只能有一个色图. 色图是m×3 的数值矩阵,它的每一行是RGB三元组.色图矩阵可以人为地生成 ...
- [转载]Matlab中插值函数汇总和使用说明
http://blog.sciencenet.cn/blog-457143-679275.html MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,' ...
随机推荐
- 修改了Mysql密码后连接不到服务且无报错信息解决方法以及修改密码方法
安装MYSQL后更改了root的密码后用 net start mysql 启动时出现:无法启动,无报错信息 使用以下命令:1.管理员方式cmd进入mysql安装目录的bin目录下2.执行命令:mysq ...
- Python 爬取SeeBug poc
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-08-24 21:42:52 # @Author : EnderZhou (z ...
- PTA(Basic Level)1013.数素数
令 *P**i* 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 *P**M* 到 *P**N* 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输 ...
- property可以声明得位置
property可以声明的位置有4处 1 @interface处 2 扩展处 3 protocol处 4 分类处 其中分类处的property不会合成实例变量,并且编译器也不会自动合成实例变量
- 初识JavaScript(二)
初识JavaScript(二) 我从上一篇<初识JavaScript(一)>知道和认识JavaScript的词法结构,也开始慢慢接触到了JavaScript的使用方法,是必须按照JavaS ...
- 根据ip获取地理信息.php
根据ip获取地理信息.php <?php function getIPLoc_sina($queryIP){ $url = 'http://int.dpool.sina.com.cn/iploo ...
- vim学习(一)之简介、安装、配置
vim简介 Vim是从 vi 发展出来的一个文本编辑器,是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. 简单的来说, vi 是老式的文字处理器,不过功能已经很齐全了,但是还是 ...
- MVC和MVVM设计模式简单理解
1.mvc设计模式理解 Model: 模型 持有所有的数据状态和业务逻辑; 泛指数据库,链接数据库,建立数据模型 View: 视图 用来展示数据模型在页面上,泛指前端 Controller: 控制器, ...
- Action获取请求参数的3中方式
方式一:Action本身作为Model对象,通过属性注入(Setter)方法讲参数数据封装到Action中 具体为:在Action中,提供和参数名相同的几个属性,并为其提供set方法,那么,该参数会被 ...
- Vue常用修饰符
Vue提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的结果: 点击外层div的结果: 修改代 ...