声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3406|回复: 14

[绘图技巧] plot绘图时线形的设置问题

[复制链接]
发表于 2007-8-16 16:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
代码如下:(matlab版本7.1下运行)
x=[0:0.1:2*pi]; y=sin(x); type=['*';'-';'o';'--'];
k=menu('直线类型','星号','实线','圆圈','虚线'); plot(x,y,type(k))

出现错误:
??? Error using ==> Untitled
Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

将type=['*';'-';'o';'--']改为type=['*';'-';'o';'-']后无错.搜索了下没找的相关资料,想问下怎么得到虚线图.

[ 本帖最后由 ChaChing 于 2009-12-25 13:10 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-8-16 18:28 | 显示全部楼层
不配备的问题。
type 里面只有4个量。menu 里面有5个量。
 楼主| 发表于 2007-8-16 18:32 | 显示全部楼层
那为什么将type=['*';'-';'o';'--']改为type=['*';'-';'o';'-'](这时type 里面4个量,menu 里面5个量)就没错了?

[ 本帖最后由 ChaChing 于 2009-12-25 13:03 编辑 ]
发表于 2007-8-16 21:49 | 显示全部楼层
把 type=['*','-','o','--'] 里面的分号该成 逗号就可以了。
type 与menu 行 ,列 不匹配。

评分

1

查看全部评分

 楼主| 发表于 2007-8-17 11:09 | 显示全部楼层
改了后没错误了,可是点画虚线画出来的却是实线.(可与plot(x,y,'--')画的虚线对比下).

[ 本帖最后由 ChaChing 于 2009-12-25 13:17 编辑 ]
发表于 2007-8-17 11:14 | 显示全部楼层
再在图形界面上 手动调整。
发表于 2007-8-17 20:02 | 显示全部楼层
最好不要出现这种歧义,两个变量的矩阵维数最好一致,要不都是4*1,要不都是1*5
发表于 2007-10-9 12:54 | 显示全部楼层
type=['*';'-';'o';'--']
k=menu('直线类型','星号','实线','圆圈','虚线')
请问上面的线型语句能用于ezpot绘图时用吗?谢谢!!
发表于 2007-10-9 13:50 | 显示全部楼层

回复 #8 mechanic05 的帖子

自己试试,应该可以的
发表于 2009-12-25 13:55 | 显示全部楼层

回复 8楼 mechanic05 的帖子

help下ezplot!
是不可以的! 但可以藉由handle回传再定义!
发表于 2009-12-25 14:21 | 显示全部楼层

回复 楼主 wondersoul 的帖子

这个问题, 楼主了解真正原因了吗?
几位大牛可能未详细发现LZ的真正问题, 疏忽了LZ的真正原因!!

LZ的错误, 仅仅是type=['*';'-';'o';'--'];出问题!!
与menu毫无关系, 当然更无所谓行列及数量匹配问题!!
发表于 2009-12-25 15:17 | 显示全部楼层
因为仅是个小概念, 个人打字又慢, 本想留着待网友发掘, 但担心个人还需重新热身, 就占去网友练习的机会了!
1.前三个符号为1*1, '--'为1*2, 当然无法type=['*';'-';'o';'--'], 而改成type=['*';'-';'o';':']即可以!
2.改成逗号type=['*','-','o','--'], 其实等同type='*-o--', 不是1*4, 而是1*5! type(4)='-'并不是'--'!
3.应该改成
x=[0:0.1:2*pi]; y=sin(x); type={'*';'-';'o';'--'};
k=menu('直线类型','星号','实线','圆圈','虚线'); plot(x,y,char(type(k)))
发表于 2010-10-7 10:12 | 显示全部楼层
x=[0:0.1:2*pi]; y=sin(x); type={'*';'-';'o';'--'};
k=menu('直线类型','星号','实线','圆圈','虚线'); plot(x,y,type{k})
注意plot中调用的时候一定要用{},如果用(),则调用的元素为cell类型,而用{}调用的元素为string类型!

评分

1

查看全部评分

发表于 2010-10-7 13:43 | 显示全部楼层
回复 zhouyang664 的帖子

ls说的不错,不过,我觉得
条条道路通罗马,12#和13#的都对,只是个人的习惯不一样,有时候也不一定是不知道,只是一般就写其中一种而已,也可以用
  1. x=0:0.1:2*pi; y=sin(x); type={'*';'-';'o';'--'};
  2. k=menu('直线类型','星号','实线','圆圈','虚线'); plot(x,y,feval(@(x)x{:},type(k)))
复制代码

评分

1

查看全部评分

发表于 2010-10-8 00:13 | 显示全部楼层
的确每个人的习惯可能不一样, 也不一定是不知道!
但只要是可以解决问题的, 互动交流学习也不错! 不是吗:handshake
还有个人对老帖的讨论, 抱持特别嘉许的看法, 因有在看资料~
另"@"为较新/後面的东东, 个人真的是较不熟:lol
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 19:49 , Processed in 0.089606 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表