查看: 1475|回复: 2|关注: 0

[未答复] 用Patch函数在两曲线间着色的问题

[复制链接]

新手

7 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
发表于 2018-1-25 19:25:36 | 显示全部楼层 |阅读模式
  1. x = (0:100)'/50*pi;
  2. y = [sin(x) sin(x+2)];
  3. subplot(2,1,1)
  4. patch([x;flipud(x)],[y(:,1);flipud(y(:,2))],'r','FaceA',.2,'EdgeA',0)
  5. line(x,y,'linewidth',2), axis([-.1 6.5 -1.1 1.1])
复制代码
这一段代码作用是在y=sin(x)与y=sin(x+2)之间着色。
我有一个疑问,就是两列函数点(x(1),y(1)), (x(2),y(2))在patch出来的着色部分有重合的时候,再着色的过程是什么样的。为什么这里反转第二列元素得到的才是我想要的图像?

使用了flipud得到正确图像

使用了flipud得到正确图像

没有使用flipud得到错误图像

没有使用flipud得到错误图像











新手

7 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
 楼主| 发表于 2018-1-26 09:09:04 | 显示全部楼层
希望不要沉了,提前谢谢各位

新手

7 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
 楼主| 发表于 2018-2-7 22:24:56 | 显示全部楼层
懂了,主要是之前不熟悉matlab矩阵运算的特点。知道[x;flipud(x)]是一个只有一列的列向量就懂了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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