请问matlab怎么运行程序 的大神们,我这个程序图为什么总是不到头呢?总是差一点点,这是什么原因啊

一组数据X,Y。它们是离散量,每两个X点的Y值点点相连,我该怎么用MATLAB得到图形?_百度知道
一组数据X,Y。它们是离散量,每两个X点的Y值点点相连,我该怎么用MATLAB得到图形?
实验数据已经得到X值和Y值,而且要求,是每两个X对应的Y值相连,中间空一个不连(比如,X为0,1,2,3;对应的Y值为0,0,0.2,0.3;也就是说让Y值0,0相连,0.2和0.3相连,0与0.2不连...
实验数据已经得到X值和Y值,而且要求,是每两个X对应的Y值相连,中间空一个不连(比如,X为0,1,2,3;对应的Y值为0,0,0.2,0.3;也就是说让Y值0,0相连,0.2和0.3相连,0与0.2不连)
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:1589
获赞数:18774
for i=1:length(x)/2
plot(x((2*i-1):2*i),y((2*i-1):2*i));end
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。6.2K334 条评论分享收藏感谢收起bugman123.com/index.html 这哥们的 visualization 能力完爆所有答案(包括我的)加起来,实在是牛逼……==这题目都给写成这样了,我就不指望赞了。你们就当福利好了。这个回答里的图都是我自己画的,盗图必…… 算了你们想拿去玩就拿去吧……看到这个问题的时候我有点纠结问题里的最后一张图是怎么画的,不过仔细看了一下我觉得应该是二维空间里画的。所以 Asymptote 和 Metapost 都可以。对了补充一点,在我的另一个回答里(),我提到对于科研的价值,科研圈和大众的定义是不一样的。对于“漂亮的插图”也是一样。君不见大众媒体里少有数据图,就算有也是寥寥几笔,fancy 为主,使用符合当前大众审美的风格(比如现在是扁平、极简),测量从来不画 errorbar,甚至极简风格的连坐标轴都不画,一条颜色风骚的曲线牛逼闪闪。对于大众来说,看起来牛逼、fancy 才是漂亮。但是在科研圈里显然不是这样,而且不同的学科之间对图的严谨、清晰程度的要求也不一样。所以单纯地说一个插图“漂亮”其实没什么意义。——————————————
正文:我觉得这个问题让我答简直太合适了…… 只要是用来画图的玩意我基本都用过,也都会。这个回答主要介绍工具,为什么不说方法呢?因为感觉好像没什么好说的,你觉得什么地方难看,改一下就行了啊…… 从最简单的开始吧。菜鸟级:
Matlab, Mathematica 和 R 就不说了。Python 有个著名的库叫 Matplotlib, 主要用来数据作图,但本身带有层次较低的 API, 原则上可以用来画任意种类的图。这玩意自带 TeX 数学语法。数据作图效果这样:丧病一点可以这样:这种牛逼闪闪的等高线也是小意思~~这么多点也是没问题的:这玩意极其的灵活,比如 Mathematica 有个功能就是画函数曲线的时候自动选择合适的采样率,斜率或者曲率比较大的地方会自动使用高采样率。于是我在 Python 里也实现了一个,这样就可以用 Matplotlib 无脑画函数曲线了,比如这样:Gnuplot. 纯画图方面与 Matplotlib 不相上下,优点是快,超级快。图就不放了,和 Matplotlib 差不多。普通级:
Metapost. 脱离菜鸟级以后,我们离开了 API 和程序的地盘,开始撸绘图语言。首先当然要介绍大名鼎鼎的 Metapost. 这货的历史最早要追溯到 Knuth 大神设计的 Metafont, 但是 Metafont 是用来制作字体的,于是一帮人仿照 Metafont 设计了通用绘图语言 Metapost. 写程序画图相对于使用 GUI 工具来说最大的好处就是可以精确地控制,和自动化。这种绘图语言尤其适合画示意图。还是上图吧……费曼图什么的简直就是不在话下…… 其实我是不太明白为什么有些软件画出的费曼图那么难看的……然后这是我用 Metapost 给我的统计力学笔记撸的封面:Asymptote. 有一小撮人用 Metapost 不爽,毕竟语法太古老了,于是搞出了类 C++ 语法的面向对象语言 Asymptote, 也是醉了…… 除了写出来比 metapost 好看一些意外,基本上差不多:初中几何题都是可以的。这玩意比较逆天的功能是 3D 矢量作图~~ 你看我这么一比划,你不就知道面心立方的晶胞是什么样的了么~~你看我这么一笔划,你不就知道 RGB 空间是怎么嵌在 xyz 空间里的了么~~继续嗯,还有好多图懒得找了,Asymptote 就先这样吧。…… …… ……&更新 &
最近又折腾了一下传说中的 . 这个东西的核心实际上是一套 selector 实现和把数据绑定到 DOM 上的机制,非常紧凑。然后 HTML 的 DOM 里可以包含 SVG, 这就很好玩了。我试了一下数据作图然后顺便撸了个 , 你们可以玩玩~~ (暂不支持移动端……),长这样:看上去挺好用,对吧?但是!!这个东西其实并不是特别适合给论文出图,原因是你用的时候需要把 SVG 保存下来。SVG 是 DOM 的一部分,一般只能用 Javascript 把 SVG 序列化,然后抛出一个文件让你在浏览器里下载,或者打开一个新窗口你手动另存为什么的,这不是关键,关键是我们写 SVG 的时候经常会用 CSS 来指定样式,这样如果你需要所有的线都粗一点,只要改下 CSS 就好,不用碰逻辑。然而你序列化 SVG 的时候是没法同时序列化 CSS 的(吧?)……………………………………
&/更新&地狱级: 这个级别的工具当之无愧地给了 Postscript 这个基于堆栈的底层页面描述语言,这个语言是如此的强大,以至于 Adobe 后来不得不发展了简化版(更易于实现):EPS 和 PDF.
这个语言的神奇之处就是它底层到用户几乎忘了它的存在,但同时它写起来却不是很费劲。如果你玩过 RPN 计算器,就很容易理解 PS 的逻辑。这玩意最大的好处它的语法十分简单,无论你用什么语言来计算,都可以方便地生成 PS 代码,而不需要考虑你用的语言是否有好用的绘图 API. 比如我之前玩元胞自动机的时候就可以用计算的代码直接生成图形:放大一点可以看到我在图上直接写了格点的编号,方便调试~~奇葩级:
最后这个级别主要是给一些特殊用途的工具。Graphviz. 这是一个图可视化工具包,可以可视化各种无向图和有向图。前几天我刚刚用它画过一个流程图:Blender. 这是一个自由的通用 3D 建模/着色/渲染/动画套件,我基本上是看着它一点点从一个土了吧唧的山寨三维软件逐渐进化成现在 Maya 级别的 3D 套件的。你们都在 Nature 杂志上见过那种很漂亮很 Fancy 但其实没什么用的三维渲染图对吧?我只能说…… 他们如果雇我画图的话会更漂亮更 fancy…不过在放 fancy 图以前,先放个看起来不那么 fancy 的:画这个图以前我以为在 Blender 里面放几个立方体几个球打开卡通渲染就行了……
我简直就是拿衣服。这货最后用了三个渲染层才搞定…… 如果有人知道更简单的方法请告诉我……下面放 fancy 图~~小清新洛伦兹吸引子:小清新某分子:这张图的源文件(分子略不同,注意有三个 scenes 需要渲染):嗯,就先这样吧~~ 想起什么再更新……&更新&这两天在帮妹子折腾这样一个分子:最终在 node editor 里撸出了这个感觉放在文章里挺不错。方法是用一个 tonemapping node... 详情见 然后给妹子渲染的另一个:&/更新&更新:Pov-ray: 好像还没有回答里提及这个。这是一个场景描述语言 + 渲染器,那个渲染器还是不错的,就是比较慢。这玩意有两种用法:当渲染器用,主要是在别的 3D 软件中把场景导出成 pov 文件,然后直接渲染,没什么技术含量
把数学公式写进去画曲面。这个玩法比较特别,配合 pov 强大的渲染器可以撸一些非常怪异的东东,但是…… Blender 是有 Python API 的,所以其实 Pov-ray 能撸的 Blender 都能撸。我之前有一段时间特别痴迷这个,后来发现然并卵,用 Blender 就行了……
最后再把之前那个链接发一下: 实在是太牛逼,不服不行……赞同 4.5K215 条评论分享收藏感谢收起博士生们都在干什么?博士生们都在干什么?八卦天下百家号作为海德堡大学交叉学科计算中心在读博士,自己DIY申请到美国应用数学有奖硕士,后又DIY申请并跳槽到号称欧盟最难申请的玛丽居里项目博士,项目期间在IBM Cplex实习半年,并访问了意大利博洛尼亚大学半年和巴黎综合理工三个月。对于一个转战了俩个大洲读博士,在欧洲读博期间又访问了另外俩个国家的楼主,说说自己在中国+美国+德国+意大利+法国 期间的硕士博士情况。国内读研的时候基本早10点-晚10点泡自习室,那时不算科研,叫恶补本科基础知识+准备出国。本科是59分挂过一科的学渣有木有,作为应数专业的学士,唯二学好俩门课一门叫做C一门叫做经济学原理:)美国硕博的时候课业比较繁重,前三年(等等好像就呆了三年)基本每学期三门课+助教职责。说说没什么课的情况下,9点-10点到办公室,中午吃完趴一会,晚上回家吃完饭开车到办公室工作到11点多,第二天有meeting的话会呆得更晚一些。那时每周的娱乐是北美烧钱快报上买买买(没办法美国购物天堂阿),外加周五晚打个球然后回家和基友dota到凌晨2点,周六周日睡个懒觉继续到办公室搬砖和平时无恙。有课和考试的情况下,那么基本交作业deadline前一晚熬夜到三四点,考试前一晚熬夜到五六点。在美国期间俩个月左右旅行一次,road trip.注:美国每门课至少三次考试,六次作业,没门考试占比差不多,作业成绩占比大于等于一门考试,所以,你懂的。再注:那时在那么大的course load下,每周和老板meeting三次+每学期3门课左右+TA Duty跳槽来了适合养老的欧洲德国读博以后每天9点半左右到办公室,晚上7点左右下班回家吃饭,期间刷刷ebay看看车(楼主这几年换了4辆车了,来了德国更加惊喜的发现德国二手车巨便宜!),最近开始刷知乎。中午和组里同事一起食堂吃饭聊天,每天基本三杯咖啡。晚上12点左右睡前有时看看领域相关的威信公众号或者youtube教授的课程视频。个人比较嗜睡,每天睡8小时+。之前是女朋友,周六偶尔加班,周日是女朋友所谓的家庭日,全天陪她。现在有了老婆(同一个人。。)和孩子,基本就周六工作半天,还包括自己兼职的咨询。期间还去意大利博洛尼亚大学和法国巴黎综合理工交流了10个月,那俩个国家的人民群众就更懒散了。。在欧期间差不多也是俩个月旅行一次,road trip+blablacar(搭车网,来了欧洲才知道)+railway(对,美国基本没有)+flight(欧洲航空巨便宜阿有木有,经常往返30欧什么的)。注:在德国平均每个月和大老板meeting一次,每半年和二老板meeting一次,意大利和法国时候,基本每周和那边的老板meeting。基本一天有效率的就那么2,3个小时,其他时间都是为了这几个小时做前期准备的:)我会告诉你晚上和周末的加班是为了弥补白天和平时虚度光阴留下的深深的罪恶感的么。。楼主基本写code的时候效率最高,看paper或写paper没一会就走神干其他的去了~美国的时候做得比较理论,基本办公室工作只需要一张纸和一支笔(证明猜想和定理有木有!)德国做得比较应用,机器学习、计算机视觉、神经网络,基本什么热朝什么方向追。(得益于老板的放任自由)paper肯定还是要看的,时不时写点C/C++然后跑跑Matlab,就是我的工作日常了,标配三个屏幕:)其实美国小老板做得是很应用的,后来也由于他跳槽工业界直接导致我的跳槽,但是我会告诉你我是他唯一一个搞理论的学生原因是我在他班上考了第一名么。因此,策略你懂的。个人建议能做应用尽量做点应用,这样出路广,学术界工业界能屈能伸。当然除去办公室独自工作的时间,meeting是必不可少的合作:除去上面俩项,科研合作更是必不可少的,很多时候要掌握主动,自己寻求科研方面的合作。楼主老板年事已高(老板请原谅我的措辞),个人感觉科研热情已不在,因此楼主目前6个课题中的4个,是自己找的(包括医学图像处理、显微镜观测下的神经元的视频大数据处理、Hub选址问题在物流的应用等等)。话说陶哲宣都开始做application了好吗,只不过人家比较叼,都是做应用的一帮哥们求着他合作,这俩天楼主还在看他前几年发的压缩感知和信号处理方面的引用1w+的牛文,竟然差不多能看懂有木有!在没有达到Tao这样高度的时候,放下你的膝盖去找合作,找生物和神经的就不错阿,没准能发个N或者S神马的岂不乐哉?(楼主的运筹领域,没听过发这俩刊的,果断抱生物的大腿)教授(导师、老板)另外很同意大家的看法,即博士就像和导师谈恋爱,选择导师的重要程度往往大于学校和院系。在美国听过不少变态push的AP甚至男色狼教授的,压得人喘不过气合不来最后导致分手另寻新欢的大有人在。在国外六年我有四个导师是意大利人,一个美国人,俩个德国人,还有一个密切合作的法国人和一个西班牙人。楼主很幸运,这些教授每一个都很nice,但是特点不尽相同。在美国的时候,每周meeting三次,就像例行公事一样,即使没有特别安排,也要整天腻歪着,即使啥也不干:)都说女人是男人的学校,在美国的“女朋友”把我照顾得细致入微,以至于失去他以后我变得生活不能自理;在德国和教授基本一个月meeting一次,恋人之间给对方充分的自由,基本处于分居状态,但是由于大牛的名气还在,资源众多,还给我足够权利带硕士论文和硕士生的编程实习,于是我成功出墙(自己找项目找合作,让小弟们干活)。其实各有利弊,长远来看,其实我更感谢现在的导师。但是最理想的结果,莫过于先有个把你照顾得无微不至的女朋友教会你怎么自己生活,然后来个富二代千金有钱有资源,放手让你自己去干:)Research流程:楼主应用数学,说说来了欧洲以后做应用的流程。拿到实际问题和问题创建者沟通了解他们需求是什么,然后先文献 review,看看有没有已经做过的类似工作,其次借鉴以前的工作或者另起炉灶数学建模(类似于小时候做应用题),当然模型是要反复推敲修改的。建了模型以后就是想算法然后写code了,最后把大数据带入code里面跑,出结果。根据结果好坏,先改code,再跑。如果改了很多次code结果还不行,先改进算法。还不行,就要改模型了。如此往复。中间穿插着写报告,小组讨论,和问题创建者沟通需求有没有被满足,能不能弱化问题多一些假设条件,然后不断的看文献、学习。楼主应用方面的工作很类似于技术咨询公司干的一个个项目,具体可以参考:Data Science/Analytics 出身,可以在咨询行业做些什么?https://www.wukong.com/answer/8219022/我读博的生活状态:其实(出国)读博,给我生活带来最大的改变莫过于能静下心潜心做同一件事,享受孤独。在国内总感觉自己是浮躁的,什么都想尝试,什么都浅尝辄止。第一年在美国没有奖学金,记得最“感动”自己的一次是周五在家朋友聚会,聚会完朋友们准备后续活动喝酒打牌桌游等等,我一个人二话不说不合群地背起书包赶下一班Bus去系里学习了。那一年我除了学习几乎什么也没干,除了跟着教堂“免费”出游了俩次。自此养成一日不“学习”,便浑身不舒服斯基的毛病。情商/抗压/女人:美国三年,没有时间固定女朋友。欧洲三年,很幸运地刚来不久便认识了现在的爱人,于俩年后修成正果并喜得小我心。各行各业,与人打交道,情商都是必不可少的。女人是男人最好的学校。我时常把恋爱当作“打怪练级”,等级高了,自然能“消灭”高等级“怪物”,等级为0,请先打野。各行各业,世间万物,很多东西都是相通的,而发现这些规律的能力,我把它称为情商。如果你google搜索“Robin's美眉定理”,或许有幸发现我大四时候写的一系列随笔。(如果我能找回renren密码,或许我会把它们搬来知乎)最后俩点题外话:科研(读博)于楼主最大的魅力之一:自由。首先是时间上的自由,没有教课任务或者meeting的情况下,楼主可以选择在任何地方工作,包括家里,图书馆,咖啡厅,河边,等等。。(当然得益于楼主一台笔记本就能工作的前提,生物医学等要做实验的就排除在外了)其次是空间上的自由,学术会议、学术访问在学术圈是极为频繁的,学术会议来说,每年选择2-3个心仪的国家或城市去开个会,完了度假1-2周,公费旅游神马的何等惬意;学术访问更是比起公费旅游来楼主更prefer的,在一个心仪的城市生活2-3个月,胜过走马观花玩个一周。当然前提是对方机构肯接纳你,因此social就显得很重要拉;最后由于科研无国界,学术上职位的跳动也是很频繁的,只要你牛,基本你想去哪个学校哪个国家,自己挑就行啦,这里的职位包括博后,助教,终身教职。科研(读博)对有工业界或者创业打算的朋友(以部分理工科为例):工业界:目前基本有点脑子的大公司,都会选择招phd进研发阿,因此博士毕业去大公司研发真是perfect match,所以不要再有读博了以后工作不好找的打算了好吗(不好意思好像忽略了文科博士的感受,不过拒楼主了解,社会学的博士也能去咨询公司的好吗)。Google、微软、FB这样的大公司研发部你能进去,在硅谷就是年薪30w+的高富帅拉。创业:读博了在自己领域混牛逼了,可以选择当教授嘛。楼主看来,做教授(终身)就是自己在做一个无风险的创业。自己建设实验室和Team,招学生拉经费。小有名气以后,可以给大公司做咨询嘛,或者直接CTO阿。这样既可以继续做着自己喜爱的科研,又可以无风险地实战创业一波(技术入股),岂不人生赢家?本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。八卦天下百家号最近更新:简介:八尽一切可八,卦尽一切可卦作者最新文章相关文章5.2K452 条评论分享收藏感谢收起赞同 2.3K106 条评论分享收藏感谢收起3.1K83 条评论分享收藏感谢收起ax(1) = subplot(2,1,1)
plot(time,signal1)
ax(2) = subplot(2,1,2)
plot(time,signal2)
linkaxes (ax,'x')
当然你也可以同步y轴:linkaxes (ax,'y') ,甚至两轴都同步:linkaxes (ax,'xy') 。--------- 更新1---------2. 相信很多人都知道hold on指令能用于作重叠的曲线图,但当两曲线值域相差太大时,以至于不能更好地展示彼此的细节,可考虑用如下方法(MATLAB 2016a 开始支持,低版本的用plotyy):plot(time,signal1)
yyaxis right
% 用右边的y轴展示
plot(time,signal2)
偷一张MATLAB官网的图来展示一下效果(侵删)。此方法跟前面的linkaxes有些相似,然而linkaxes能展示多个曲线。linkaxes适合用于自己查看分析,本方法适合作报告节省空间。3.很多人提到多行注释 ctrl + R 。但其缺点是不能折叠。利用如下格式,可使注释后的内容折叠起来。%{
可折叠的注释区域
--------- 更新2---------4. 获取当前路径:path = 。获取当前路径所有文件及文件夹的名字:names = ls ;其实要想具体一点,用dir代替ls会更好:files = dir;--------- 更新3---------5. 用 deal() 让初始化更简洁。合并内容相同的初始化:% 假如要初始化A,B,C和D为3*4阶矩阵,平常我们会用如下代码
A = zeros(3,4);
B = zeros(3,4);
C = zeros(3,4);
D = zeros(3,4);
% 利用deal()改造后,简洁相当多
[A,B,C,D] = deal(zeros(3,4));
当然,初始化的内容不一定都相同,但是仍然可以缩成一行% 如以下例子
A = zeros(3,4);
C = ones(2);
D = cell(2);
% 可以用deal()改造,只是长一点
[A,B,C,D] = deal(zeros(3,4),[],ones(2),cell(2));
初始化结构体数组,当行数特别多时,优势明显% 正常方法初始化3行,两个field的结构体数组:
inl = {0, 0, 0};
% 必须得元胞数组,有些麻烦
s = struct('f1',inl,'f2',inl);
% 用deal改进
[s(1:3).f1,s(1:3).f2] = deal(0);
% 如果内容不一样,就每个field分开来
[s(1:3).f1] = deal(0);
[s(1:3).f2] = deal(zeros(3));
% 把3改成任意行数n
--------- 更新4---------6. 大家觉不觉得每次用plot作图返回的窗口都好小,每次都要手动按右上角的框框放大,贼烦~以下命令实现自动放大% 以下代码实现自动放大
fig = figure;
fig.Position = get(0,'ScreenSize');
% fig.Position这种操作好像MATLAB 2012还是2013之后才有的,忘记了,低版本用set吧
% % % % 我是分界线 % % % %
plot(1:10)
% 随便做个图查看效果
% 顺手加个放大,省得点工具栏
--------- 更新5---------7. 这个可能很多人知道,但是真的很好用。用‘end’检索最后一位元素% 正常方法获取向量V最后一位元素
N = length(V);
last = V(N);
% 用end的话方便很多
last = V(end);
% 还可以这样
test1 = V(end-1);
% 倒数第二个
= V(1:end/2);
% 获取一半(奇数长度会有警告)
矩阵的用法差不多,就不举例了8. 前面有人说过 dbstop if error。如果再配合两把宝剑,会更好用:dbup 和 dbdown。这两个命令在程序错误并断点之后在命令行输入,用于在workspace间切换查看变量调试。dbup是跳到上层workspace,dbdown是返回。赞同 28117 条评论分享收藏感谢收起

我要回帖

更多关于 matlab程序实例大全 的文章

 

随机推荐