如何用matlab画三维图简单的三维图

苹果/安卓/wp
苹果/安卓/wp
积分 202, 距离下一级还需 58 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
权限: 签名中使用图片
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
悲催签到天数: 1 天连续签到: 1 天[LV.1]初来乍到
如题。总共60个即期利率曲线(每天一个),我想把这些曲线按照时间都放在一张三维图中。
相关代码如下:
PlottingDates = CurveSettle+20:30:CurveSettle+365*25;
TimeToMaturity = yearfrac(CurveSettle,PlottingDates);
NSParYields = NSModel.getParYields(PlottingDates);
plot3(TimeToMaturity,n,NSParYields)
运行出错:
Vectors must be the same lengths.
我知道问题应该是出在红色的n上面,n就是从1到60,我不知道应该怎样实现我的目的。应该是很简单的问题,但是我实在不擅长这方面的知识,希望高人来帮我一下。是不是程序用错了呢?
载入中......
有人明白这个问题吗?请来帮我一下,非常感谢。自己顶
本帖最后由 epoh 于
20:45 编辑 aywinng 发表于
有人明白这个问题吗?请来帮我一下,非常感谢。自己顶个人认为应该不适合plot3
假设n=60,PlottingDates相同
NSParYields不同(这里我用NSParYields+0.001*i)
利用loop,画出60条curves
Settle = repmat(datenum('30-Apr-2008'),[6 1]);
Maturity = [datenum('07-Mar-2009');datenum('07-Mar-2011');...
datenum('07-Mar-2013');datenum('07-Sep-2016');...
datenum('07-Mar-2025');datenum('07-Mar-2036')];
CleanPrice = [100.1;100.1;100.8;96.6;103.3;96.3];
CouponRate = [0.5;0.0;0.5];
Instruments = [Settle Maturity CleanPrice CouponRate];
NSModel = IRFunctionCurve.fitNelsonSiegel('Zero',datenum('30-Apr-2008'),Instruments);
CurveSettle=733528 ;& &&&%datenum('30-Apr-2008')
PlottingDates = CurveSettle+20:30:CurveSettle+365*25;
TimeToMaturity = yearfrac(CurveSettle,PlottingDates);
NSParYields = NSModel.getParYields(PlottingDates);
%plot(PlottingDates,NSParYields,'r')
%datetick('x')
for i=1:n& &&&
plot(PlottingDates,(NSParYields+0.001*i));
datetick('x')
16:32:47 上传
本帖最后由 aywinng 于
11:31 编辑 epoh 发表于
个人认为应该不适合plot3
假设n=60,PlottingDates相同
NSParYields不同(这里我用NSParYields+0.001*i ...高手!好厉害。但是我还是想画一个三维图。我把我的数据简化一下,变成10组,前辈帮我看看可以吗?
x轴范围是0-10(表示到期时间),y轴范围是0-10(表示共十条利率曲线),z轴范围是0-0.05(表示即期利率)。
x轴的取值是 x = [1 2 3 4 5 7 10];
十组即期利率数据的矩阵表示如下:
rate = [0.0204& && &&&0.0314& && &&&0.0384& && &&&0.0428& && &&&0.0455& && &&&0.0483& && &&&0.0497
0.0179& && &&&0.0316& && &&&0.0389& && &&&0.0429& && &&&0.0452& && &&&0.0474& && &&&0.0488
0.0165& && &&&0.0311& && &&&0.0385& && &&&0.0424& && &&&0.0447& && &&&0.0469& && &&&0.0484
0.0155& && &&&0.0304& && &&&0.0377& && &&&0.0417& && &&&0.0439& && &&&0.0462& && &&&0.0477
0.0148& && &&&0.0295& && &&&0.037& && &&&0.041& && &&&0.0433& && &&&0.0456& && &&&0.0471
0.0155& && &&&0.0293& && &&&0.0365& && &&&0.0404& && &&&0.0427& && &&&0.0451& && &&&0.0467
0.0164& && &&&0.0291& && &&&0.0358& && &&&0.0395& && &&&0.0418& && &&&0.0443& && &&&0.0461
0.0144& && &&&0.0284& && &&&0.0359& && &&&0.0399& && &&&0.0423& && &&&0.0447& && &&&0.0463
0.0146& && &&&0.0277& && &&&0.0349& && &&&0.0389& && &&&0.0414& && &&&0.044& && &&&0.0456
0.013& && &&&0.0252& && &&&0.0323& && &&&0.0364& && &&&0.0389& && &&&0.0416& && &&&0.0432]
我想把这些数据做成三维图,应该怎么实现呢?我用Matlab自带的图形工具总是不成功,不知道问题出在那里。
附件就是我想要实现的图形,是其他人论文中摘取的,拜托帮我看下。
11:31:24 上传
附件是60条曲线放在一起的效果,大概就是这个样子的。
(40.34 KB)
01:04:59 上传
本帖最后由 epoh 于
10:25 编辑 aywinng 发表于
高手!好厉害。但是我还是想画一个三维图。我把我的数据简化一下,变成10组,前辈帮我看看可以吗?
x轴 ...方便的话请告知原图之x,y,z各代表甚么
Vectors must be the same lengths.
x = [1 2 3 4 5 7 10];
所以y要设为 y=1:7,否则会出错
要画几条线,关键在rate matrix
如果是7 x 10,画10条
如果是7 x 60,画60条
所以x,y要设正确,图形才会漂亮ratetranpose=rate'plot3([1 2 3 4 5 7 10],ratetranpose,1:7)grid on&&
10:24:51 上传
应该用mesh或者surf函数绘制三维曲面图。
epoh 发表于
方便的话请告知原图之x,y,z各代表甚么
Vectors must be the same lengths.我上面写了x,y,z 所代表的意思啊。
x表示的是到期时间,y表示的是利率曲线的条数,z表示的是利率。
我想试试用mesh来实现。
wenpan9933 发表于
应该用mesh或者surf函数绘制三维曲面图。能再详细一点吗?我也想用mesh来实现,但总是出错。
epoh 发表于
方便的话请告知原图之x,y,z各代表甚么
Vectors must be the same lengths.我把图片重新上传了一次,现在能看到各个坐标了。谢谢帮助。
嗯,搞定了,代码超级简单,大半夜的脑袋太晕了。谢谢大家的帮忙。
z = [0.0204& & & & 0.0314& & & & 0.0384& & & & 0.0428& & & & 0.0455& & & & 0.0483& & & & 0.0497
0.0179& & & & 0.0316& & & & 0.0389& & & & 0.0429& & & & 0.0452& & & & 0.0474& & & & 0.0488
0.0165& & & & 0.0311& & & & 0.0385& & & & 0.0424& & & & 0.0447& & & & 0.0469& & & & 0.0484
0.0155& & & & 0.0304& & & & 0.0377& & & & 0.0417& & & & 0.0439& & & & 0.0462& & & & 0.0477
0.0148& & & & 0.0295& & & & 0.037& & & & 0.041& & & & 0.0433& & & & 0.0456& & & & 0.0471
0.0155& & & & 0.0293& & & & 0.0365& & & & 0.0404& & & & 0.0427& & & & 0.0451& & & & 0.0467
0.0164& & & & 0.0291& & & & 0.0358& & & & 0.0395& & & & 0.0418& & & & 0.0443& & & & 0.0461
0.0144& & & & 0.0284& & & & 0.0359& & & & 0.0399& & & & 0.0423& & & & 0.0447& & & & 0.0463
0.0146& & & & 0.0277& & & & 0.0349& & & & 0.0389& & & & 0.0414& & & & 0.044& & & & 0.0456
0.013& & & & 0.0252& & & & 0.0323& & & & 0.0364& & & & 0.0389& & & & 0.0416& & & & 0.0432];
x=[1 2 3 4 5 7 10];
y = [1:10];
mesh(x,y,z)
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师查看: 2115|回复: 5|关注: 0
怎么用matlab画出三维连续图,并含强度信息
我现在做雷达三维成像,需要画目标的三维图像并含有目标散射点的散射系数信息,也就是用matlab画出三维连续图,并含强度信息(用颜色表示),surface这个函数我用过了,画出来的图不是我想要的。不知道我说的清不清楚,希望大侠们能帮帮忙,告诉我应该用哪个函数,最好能说明参数的设置。
可能说的不太清楚,我要的图形在三维空间是全部都有值的,需要在整个空间连续,而我用surface只能画出面连续的(无论是平面还是曲面),我也用了scatter3画散点图,能再三维空间表示出点得强度(通过颜色),但唯一不行的就是不连续,并且没办法透视。望高人们指教一下,急用:Q :Q
好难啊&&持续关注中
我也有同样的需求,楼主可找到了解决方法?
请问您的问题解决了吗&&我和你有样的问题 想请教你
suting4190 发表于
我也有同样的需求,楼主可找到了解决方法?
请问您解决了吗?我也想知道怎么弄 谢谢
站长推荐 /2
Powered by苹果/安卓/wp
苹果/安卓/wp
积分 25, 距离下一级还需 20 积分
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡下一级可获得
道具: 显身卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
各位同学们好,我是Matlab的新手,目前帮助老师做一个事情,需要用到仿真模拟来画三维图形,Matlab是才开始接触的,用的很不熟练。问题如下:
x的取值范围为[0,24]
y的取值范围为[0,15] ,x和y均以0.1的步长增加。
t=(8x^2-x^3/3)/100;
z=7.7652*[2Φ(t/4.3)-1]
同时满足,if&&y&12.51,z不变为常数6.14
& && && & if&&y&12.51,76.8/z&=y;
Φ(t)是标准正态分布求概率的函数,例如 Φ(3)=0.9987,我查了下,是NORMCDF函数,现在主要是需要画一个三维的立体图,纵坐标为z,两个横坐标为x和y;我用Matlab画了下,但是几个限制条件总是不知道怎么弄。希望您能指点指点,感激不尽!
载入中......
进来看看 了解下
h小说 种马小说
不知对否,欢迎拍砖
(121.78 KB)
20:38:33 上传
(119.26 KB)
20:38:15 上传
尽量了解一下。。
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师MATLAB中怎么画出三维离散曲面图_百度知道
提问者采纳
[x,y]=meshgrid(500:500::100);z=[1.5 1.5 1.5 1.5 1.5 1.6 1.6 1.6 1.6 1.7 1.71.5 1.5 1.6 1.6 1.6 1.7 1.7 1.7 1.7 1.8 1.81.7 1.7 1.7 1.8 1.8 1.9 1.9 2 2 2.1 2.11.9 1.9 1.9 2 2 2.1 2.2 2.3 2.4 2.4 2.52.3 2.3 2.4 2.5 2.6 2.6 2.7 2.8 2.8 2.9 32.8 3 3.1 3.2 3.3 3.4 3.5 3.6 3.8 4 43.2 3.3 3.4 3.6 3.9 4.1 4.3 4.4 4.5 4.7 4.83.7 3.8 3.9 4 4.2 4.4 4.6 4.8 5 5.2 5.34.3 4.5 4.7 4.9 5.1 5.4 5.5 5.6 5.7 5.8 5.95.1 5.2 5.3 5.5 5.6 5.7 5.8 5.9 6 6.1 6.2];surf(x,y,z)
提问者评价
万分感谢,前段时间没来看,发分晚了,不好意思~
来自团队:
其他类似问题
65人觉得有用
为您推荐:
您可能关注的推广
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何在matlab中绘制三维局部图
如果要求 x的取值范围为[0,1],y的范围为[0,1],z的范围为[0,1];  目标函数为 f=exp(x)+exp(-y)+exp(z),其中z=1-x-y   画出f关于x,y的三维图???
09-08-12 &
span name=whlm id=whlmATLAB之所以能够如此流行,一方面是由于其强大的数值计算能力、图形功能和丰富的工具箱,另一方面是由于MATLAB语言的简洁性、更加符合工程应用的思维习惯。本书编著时兼顾上述两方面的特点,内容主要针对MATLAB 7.0,这是MATLAB当前最流行的版本。全书大致可以分为七篇,分别讲述MATLAB基础、MATLAB中的矩阵运算、MATLAB数据分析、MATLAB图形、MATLAB程序设计、SIMULINK和MATLAB常见工具箱。本书对每个知识点做到了逐点实例讲解,并在解决实际问题时溶入了工程实践的经验。/span
请登录后再发表评论!

我要回帖

更多关于 matlab画三维曲面 的文章

 

随机推荐