小白入门MATLAB学习笔记

绘图:使用MATLAB绘制三叶玫瑰线

公式:

玫瑰线的极坐标方程为:ρ=a* sin(nθ),ρ=a*cos(nθ)

用直角坐标方程表示为: x=a* sin(nθ)* cos(θ), y=a*sin(nθ)* sin(θ)

其中n为玫瑰线的叶数,我们绘制三叶玫瑰线,因而公式中取n=3

代码:

t=-2*pi:0.01:2*pi;
x=sin(3*t).*cos(t);
y=2*sin(3*t).*sin(t);
z=3*sin(3*t).*sin(t);
figure
[AX,H1,H2]=plotyy(x,y,x,z,'plot');
set(get(AX(1),'Ylabel'),'string','the y1')
set(get(AX(2),'Ylabel'),'string','the y2')
xlabel('the x')
title('three leaves rose line')
set(H1,'LineStyle',':')
set(H2,'color','g')

代码解析和易错点提示:

我们将公式里的θ记作t。

接下来出现了一个特别容易报错的点,由于我们设置的t其实是一个数组,是从-2pi到2pi,步长为0.01的数组,所以sin(3*t)和sin(t)实质上都是相同大小的数组,如果直接使用*计算二者乘积,相当于是1\times1257大小(用MATLAB右侧工作区得知的)的两个矩阵相乘,明显不符合线性代数对于矩阵乘法的要求(左矩阵的行数等于右矩阵的列数),MATLAB会报错,报错提示是错误使用  *  ,内部矩阵维度必须一致。所以我们这里使用了.*,即每个位置的元素对应相乘。

下面我们创建一个画布。

接下来的plot函数是用于将y和z画在同一个x轴上。

下面是一些图形美化函数,这里为了美观,将y曲线设置了虚线,z曲线则是绿色的曲线。

还有一个比较有意思的点是,MATLAB会自动调整两个y轴的刻度大小,所以一开始我y曲线和z曲线的方程恰好是整数倍的关系(z=n*y n=1,2,3,...),导致只会画出一条曲线,因为左右两边的刻度不一样,左边也是右边的偶数倍,曲线重合了,所以这里改成了非整数倍,方便同时显示出两条线来。

曲线绘制通常是取步长为0.01,步长越小自然曲线越精细。

最后的结果图如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值