版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3106)
>
虫友互识
(239)
>
文献求助
(214)
>
导师招生
(141)
>
硕博家园
(48)
>
论文道贺祈福
(44)
>
博后之家
(42)
>
招聘信息布告栏
(37)
>
休闲灌水
(31)
>
找工作
(26)
>
考博
(24)
>
绿色求助(高悬赏)
(18)
>
教师之家
(17)
>
基金申请
(16)
>
论文投稿
(13)
>
考研
(10)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
其它
»
matlaB三维图
3
1/1
返回列表
查看: 1438 | 回复: 10
查看全部回帖
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
whq_nj
金虫
(小有名气)
应助: 0
(幼儿园)
金币: 588
散金: 15
帖子: 216
在线: 66小时
虫号: 874419
注册: 2009-10-16
性别: GG
专业: 模式识别
[
求助
]
matlaB三维图
请教怎么用matlaB画出下面的图,matlab程序?
各位大侠谢谢指教!!!
不甚感激
回复此楼
» 猜你喜欢
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有3人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有12人回复
博士读完未来一定会好吗
已经有27人回复
投稿精细化工
已经有4人回复
高职单位投计算机相关的北核或SCI四区期刊推荐,求支招!
已经有4人回复
导师想让我从独立一作变成了共一第一
已经有9人回复
读博
已经有4人回复
JMPT 期刊投稿流程
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
帮忙看看这个平面图用matlab怎么画
已经有19人回复
多幅二维图生成三维图
已经有8人回复
Matlab 如何画三维图
已经有5人回复
如何在matlab中绘制三维立体图
已经有13人回复
用Matlab软件如何画出三维荧光光谱图
已经有11人回复
【求助】请各位高手告诉我:这种想法能不能用matlab实现?200金币求助
已经有16人回复
【其他】Matlab画三维曲面时候如何将坐标轴的说明(xlabel/ylabel)变得与坐标轴平行?
已经有3人回复
【求助】在MATLAB中如何将离散点拟合成曲面图
已经有18人回复
1楼
2012-01-05 17:21:22
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
libralibra
至尊木虫
(著名写手)
骠骑将军
程序强帖: 40
应助: 817
(博后)
金币: 12914.1
红花: 64
帖子: 2238
在线: 287.3小时
虫号: 696514
注册: 2009-02-05
专业: 计算机软件
★
jjdg(金币+1): 感谢参与 2012-01-09 04:43:36
whq_nj: 回帖置顶 2012-01-09 11:47:32
ben_ladeng(专家考核): 2012-01-10 16:29:41
ben_ladeng(专家考核): 2012-01-10 16:29:54
matlab肯定可以,但是没有你的数据,手动调整太麻烦了,整个大概看看得了
matlab作图
赞
一下
(3人)
回复此楼
» 本帖已获得的红花(最新10朵)
whq_nj
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
7楼
2012-01-09 03:18:40
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
libralibra
至尊木虫
(著名写手)
骠骑将军
程序强帖: 40
应助: 817
(博后)
金币: 12914.1
红花: 64
帖子: 2238
在线: 287.3小时
虫号: 696514
注册: 2009-02-05
专业: 计算机软件
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jjdg(金币+1): 感谢参与 2012-01-10 00:50:52
xzhdty(金币+25): 楼主给你的 2012-01-10 15:33:01
ben_ladeng(专家考核): 2012-01-10 16:30:33
引用回帖:
8楼
:
Originally posted by
whq_nj
at 2012-01-09 11:51:43:
谢谢,3D图的中心线可以不上吗?
非常感谢,您可以把程序加上注释发给我吗?
另:您应助了,我好把金币给您
三维中心线,要是有了center的三维坐标,就是个plot3的事儿.
我没有仔细弄,代码也很凌乱,你看着改改吧
CODE:
function temp()
% 清空workspace的变量
clc;
clear all;
close all;
% center做在x-y平面
centerMat = [ 117 105 96 86 79 71 66 60 56 51 48 45 43 42 44 44 45 44;
260 248 234 217 202 187 172 158 143 127 113 98 83 69 53 37 23 9];
centerMat = [centerMat;zeros(1,size(centerMat,2))]';
centerMat(:,2) = max(centerMat(:,2))-centerMat(:,2);
% 右图left的坐标,因为是鼠标点的,所以有些误差,如果你有数据,就是精确的
leftMat = [115 93 79 61 48 39 34 29 27 25 24 23 23 26 25 29 37 43;
262 257 245 231 219 203 185 169 151 134 117 102 85 68 52 36 22 8];
leftMat = [leftMat;zeros(1,size(leftMat,2))]';
leftMat(:,2) = max(leftMat(:,2))-leftMat(:,2);
% 有图right的坐标,同left
rightMat = [117 118 119 112 109 103 96 91 88 80 75 69 68 65 64 62 53 44;
259 240 218 203 187 173 160 145 133 120 109 93 81 66 52 37 23 8];
rightMat = [rightMat;zeros(1,size(rightMat,2))]';
rightMat(:,2) = max(rightMat(:,2))-rightMat(:,2);
% 旋转角度,用左右对应点求解出来的
anglesMat = rightMat-leftMat;
anglesMat = atan2(anglesMat(:,2),anglesMat(:,1));
% 图
figure
% 左边的三维图
subplot(1,2,1);hold on;grid on;
radiusMat = zeros(1,18);
for i=1:18
radiusMat(i) = pdist2(leftMat(i,:),rightMat(i,:))/2; % 计算半径,(右-左)/2
circle(centerMat(i,:),radiusMat(i),[0,0,anglesMat(i)]); % 调用子函数画圆
end
xlabel('x');
ylabel('y');
zlabel('z');
% 右图
subplot(1,2,2);hold on;grid on;
plot3(centerMat(:,1),centerMat(:,2),centerMat(:,3),'k'); % 中心
plot3(leftMat(:,1),centerMat(:,2),centerMat(:,3),'ks-'); % 左边
plot3(rightMat(:,1),rightMat(:,2),rightMat(:,3),'ks-'); % 右边
% 左右连线
for i=1:18
line([leftMat(i,1),rightMat(i,1)],[leftMat(i,2),rightMat(i,2)],[leftMat(i,3),rightMat(i,3)]);
end
xlim([min(leftMat(:,1))-20:max(rightMat(:,1))+20]);
ylim([min(leftMat(:,2))-20:max(leftMat(:,2))+20]);
end
%% 子函数
% 参数
% center: p*3,中心坐标
% radisu: 半径
% angle: 1*3,分别绕三个轴的旋转角度,你这个圆是画在y-z平面后旋转的,所以x都默认是0
function circle(center,radius,angle)
NOP = 100; % 精度参数,不用调整
% 生成圆的数据
THETA = linspace(0,2*pi,NOP);
RHO = ones(1,NOP)*radius;
[Y,Z] = pol2cart(THETA,RHO);
Y = Y+center(2);
Z = Z+center(3);
coords = [zeros(length(Y),1),Y',Z'];
% 旋转矩阵
rotMatX = [ 1, 0, 0;
0, cos(angle(1)), sin(angle(1));
0, -sin(angle(1)) ,cos(angle(1))];
rotMatY = [ cos(angle(2)), 0, -sin(angle(2));
0, 1, 0;
sin(angle(2)), 0, cos(angle(2))];
rotMatZ = [ cos(angle(3)), sin(angle(3)), 0;
-sin(angle(3)), cos(angle(3)), 0;
0, 0, 1];
% 旋转圆
coords = coords*(rotMatZ*rotMatY*rotMatX);
% 画圆
plot3(coords(:,1)',coords(:,2)',coords(:,3)','k');
end
赞
一下
(3人)
回复此楼
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
11楼
2012-01-09 18:36:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
whq_nj
的主题更新
3
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定